Cesium 热力棱柱分布图

该博客介绍了一种通过获取点数据的最大最小经纬度来构建热力分布范围的方法,利用正棱柱的边长将范围划分为小正方形,并通过turf库进行点与面的空间分析。然后根据每个正方形内点的数量调整柱状图的高度和颜色,实现颜色渐变效果。此外,指出了前端进行大量空间分析的不足,建议后台处理或数据库空间分析。提供的脚本代码展示了如何调用相关功能。
摘要由CSDN通过智能技术生成

效果图

在这里插入图片描述

功能思路

1、从所有的点数据中获取到最大最小经纬度,构成热力的分布范围。
2、通过columnSide(正棱柱的边长)将分布范围分为一个个小正方形面(参考turf.squareGrid方法)
3、再分析点是否在小正方形中–判断面是否包含点,处理每个正方形的点数集(参考 turf.booleanPointInPolygon方法)。
4、根据每个正方形的点数量,判断点数量在colorindex(颜色渐变范围数组)控制棱柱的高度和棱柱颜色color(渐变颜色数组)
5、最后通过处理好的集合生成一个个柱型即可

不足之处

1、点数据过多不要在前端进行分析点–面包含的空间分析,消耗巨大;可以在后台进行分析,或使用数据库进行空间分析。

SELECT st_within(point(102.371,35.0040),ST_GeomFromText('POLYGON((
119.355814 26.058266,
119.355832 26.055913,
119.360018 26.055848,
119.360862 26.059191,
119.355814 26.058266))'));

#点在范围内返回1,不在的时候0

脚本代码调用

var heatcolum = new HeatColumn({viewer:viewer});
		//添加柱型 
		function addColumn(){
			var obj ={
				id:"heatcolumn001",
				pointdata:Columndata,
				columnSide:10,//10米
				columnfillList:{
					//color:["#DEF6FF","#BFD9FF","#82B5FF","#4591FF","#0068FF"],
					color:["#60F3AB","#00CCBC","#009AC0","#006FAF","#014289"],
					colorindex:[5,10,15,20,25],
				}
			}
			var outerrectangleobj = heatcolum.createsquareGrid(obj);			
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Darren~52HZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值