当前位置: 首页 > article >正文

Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法;(使用simple-statistics 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/simple-statistics@7.8.3/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


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


http://www.kler.cn/news/305414.html

相关文章:

  • npm切换淘宝最新镜像
  • 玩转springboot之为什么springboot可以直接执行
  • 清理C盘缓存,删除电脑缓存指令是什么
  • http的请求方式
  • 深入解析创建型设计模式及其应用
  • C#使用TCP-S7协议读写西门子PLC(三)
  • kafka的主要功能
  • 小程序面试题四
  • 【Go - 超实用,3行代码实现个自增器】
  • react 安装使用 antd+国际化+定制化主题+样式兼容
  • 【 前端优化】Vue 3 性能优化技巧
  • Java项目: 基于SpringBoot+mybatis+maven服装生产管理系统(含源码+数据库+任务书+开题报告+毕业论文)
  • 【CSS】样式水平垂直居中
  • 果蔬识别系统性能优化之路(四)
  • HarmonyOS开发之使用PhotoViewPicker(图库选择器)保存图片
  • 基于SpringBoot+Vue+MySQL的IT技术交流和分享平台
  • apt:Debian 高级包管理器
  • Pyecharts数据可视化大屏:打造沉浸式数据分析体验
  • MySQL中用with as 解决临时表的问题
  • 【Android】【Bug】使用OSmdroid绘制轨迹断裂问题
  • 数据赋能(202)——开发:数据开发管理——技术方法、主要工具
  • Djourney新手入门基础,AI摄影+AI设计+AI绘画-AIGC作图
  • 【PyCharm】和git安装教程
  • Haskell中的数据交换:通过http-conduit发送JSON请求
  • (k8s)Kubernetes本地存储接入
  • 双指针的用法以及示例
  • Python基础语法(3)上
  • 深入解析 SQLSugar:从基础 CRUD 到读写分离与高级特性详解
  • 基于YOLOv10的光伏板缺陷检测系统
  • 【drools】文档翻译1:入门