首页 > 其他分享 >Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法;(使用simple-statistics JS数学统计库生成自然间断点)

Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法;(使用simple-statistics JS数学统计库生成自然间断点)

时间:2024-09-14 20:52:34浏览次数:11  
标签:statistics 渲染 simple JS 间断 分级 图层

1.效果


2.实现

  2.1 分级色彩

       分级色彩是在GIS制图中,通过不同颜色等级来表示数据量级差异的符号化方法,帮助用户直观识别和比较数据的大小。


  2.2 分级方法 

       在GIS中进行分级色彩制图时,可以选择不同的分级方法来表示数据的分布和变化,常见的分级方法如相等间隔、标准差、自然间断点等;

       本章节主要采用自然间断点法进行分级色彩制图,该分级方法的优势在于当数据分布不均匀时,可以更好地显示数据的分布特征。

     为了让大家好理解,我使用ArcMap软件加载图层,采用自然间断点分级法,对图层进行符号化;在上图中可以看到,系统自动计算了每个分级的数值范围,且被分为5级,每个值范围被分配不同的颜色。接下里我们将在前端中渲染地图,实现该专题制图效果。


  2.3 simple-statistics 库

simple-statistics 是一个用JavaScript实现的统计方法库,它提供了描述性统计、回归分析和推断统计等功能。这个库设计简洁,易于理解和使用,适合在各种项目中进行数据分析,尤其是在前端开发和数据可视化中。simple-statistics 可以帮助开发者和统计学家快速计算基本的统计量,如平均值、中位数、众数、方差、标准偏差等,并且可以集成到现代浏览器和Node.js环境中

    2.3.1 安装

     npm:

npm install --save simple-statistics

      cdn:

https://unpkg.com/[email protected]/dist/simple-statistics.min.js

    2.3.2 文档 

官方文档icon-default.png?t=O83Ahttp://simple-statistics.github.io/docs/

    2.3.3 计算自然间断点

    以下示例为vue框架引入simple-statistics库,使用 jenks方法计算自然间断点,且分为五级。其中, jenks方法接受两个参数,第一个参数接受一个数组,数组为待分类的值,第二个参数接受一个Number,表示要分几级。

// vue 引入JS
import * as ss from "simple-statistics";
// 计算自然间断点
const breaks = ss.jenks(data, 5);

    为了让大家好理解,我把 data 和计算结果 breaks 截图给大家展示一下:

    2.3.4 补充一点

       看到这里大家应该会有一个疑惑,data是咋得到的,我来将一个大致思路,同时贴出部分源码截图。这里不讲解如何使用arcgis api,有需要的可以查看相关文章。

       当地图数据准备好时,先添加进地图中,接下来使用queryFeatures方法对图层进行查询,目的是查询图层中的属性,因为分级渲染是根据图层中的某个属性值进行渲染的。将图层中的目标值通过循环遍历添加入data数组中。


  2.4 分级渲染

关于在arcgis api4.x中采用renderer对图层进行分级渲染的方法,我也发布过相关文章,下面贴出了链接;接下来就只需要拿出计算后的字段间断点,依次作为每一种颜色渲染的条件(minValue—maxValue内都渲染成预定颜色)。

分级色彩渲染icon-default.png?t=O83Ahttps://blog.csdn.net/no_money000/article/details/141332038


(有不懂的欢迎评论区讨论,如果文章对你有帮助,可以点个赞鼓励下博主噢!) 

标签:statistics,渲染,simple,JS,间断,分级,图层
From: https://blog.csdn.net/no_money000/article/details/142219781

相关文章

  • 高级java每日一道面试题-2024年9月08日-前端篇-JS的执行顺序是什么样的?
    如果有遗漏,评论区告诉我进行补充面试官:JS的执行顺序是什么样的?我回答:JavaScript的执行顺序是由其特殊的执行环境所决定的。JS的执行环境包括全局执行环境、函数执行环境和eval执行环境。在这些环境中,变量和函数声明会被提升(hoisting),而变量赋值和函数调用则按照......
  • 将项目里的moment替换为day.js
    day.js有和moment.js完全一样的API,但是它的体积却比moment要小的很多,moment打包后的体积有280kb左右,而day.js打包后只有6.3KB。它非常轻量化,因为它可以利用treeShaking如果你的项目里面使用的是moment.js,而你想要把它替换成day.js,很简单,直接使用一个webpack插件即可,而无需做任何......
  • 【工具】前端JavaScript代码在线执行器 方便通过网页 手机测试js代码
    【工具】前端JavaScript代码在线执行器方便通过网页手机测试js代码自动补全js代码格式化代码色彩打印日志清空日志待补充<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,ini......
  • nlohmann/json安装与使用
    介绍nlohmann/json是一个用于处理JSON数据的C++库,提供了简单而强大的JSON解析和生成功能。以其简洁易用、功能强大而受到广泛欢迎。优点简单易用:使用现代C++特性,如自动类型推断和范围for循环,简化了JSON的创建、访问和操作。与标准库兼容:它与C++标准......
  • Utf8JsonWriter生成json
    privatestaticTaskWriteResponse(HttpContextcontext,HealthReporthealthReport){context.Response.ContentType="application/json;charset=utf-8";varoptions=newJsonWriterOptions{Indented=true};usingvarmemoryStr......
  • Js基础之对象
    对象是一种无序的数据集合,可以详细描述一个事物1.对象声明语法let对象名={}例如://声明了一个person的对象letperson={}2.对象的使用let对象名={属性名:属性值,方法名:函数}​letobj={  uname:'pink老师',  age:18,  gender:'女}consol......
  • Js基础之运算符
    比较运算符对比:=单等是赋值==是判断===是全等(要求类型和值都相等)开发中判断是否相等,强烈推荐使用===//比较运算符有隐式转换把'2'转换为2双等号只判断console.log(2=='2')console.log(undefined==null)//===全等判断值和数据类型都一样才行//以后判......
  • java毕业设计——基于java+ssh+jsp+MySqL的大学生就业信息管理系统设计与实现(毕业论文
    基于java+ssh+jsp+MySqL的大学生就业信息管理系统设计与实现(毕业论文+程序源码)大家好,今天给大家介绍基于java+ssh+jsp+MySqL的大学生就业信息管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进......
  • C# jsonconvert and binaryformater both in serialize and deserialize
    publicDelCmdExportAllCmd{get;set;}publicDelCmdExportAllBinaryFormatterCmd{get;set;}publicDelCmdDeserializeJsonFileCmd{get;set;}publicDelCmdDeserializeBinFileCmd{get;set;}privatevoidInitCmds(){ExportAllCmd=newDelC......
  • d3.js 构建股权架构图并绘制双向节点树
    效果:代码:StockStructureChart.jsimportReact,{useEffect,useRef}from"react"import*asd3from"d3"constStockStructureChart=({upwardData,downwardData})=>{constref=useRef()constwidth=800constheight=......