集众家之所长,用ts重写Cesium热力图cesium-heatmap-es6(weixin公众号【图说GIS】)

参考源码

1.《117颗星 manuelnas/CesiumHeatmap》
基于heatmap.min.js,通过绘制Entity(矩形)实体实现,364行代码,有三维效果
2. 《32颗星 postor/cesiumjs-heat 》
基于heatmap.min.js,使用SingleTileImageryProvider图层实现,根据镜头移动具有重绘功能,239行代码,无三维效果
3. 《16颗星 wangzhongliang/CesiumHeatmap》
使用Primitive图元实现,提供了两种方式,优点在于计算范围的方法。
方式一基于heatmap.min.js,157行代码,无三维效果;
方式二基于webgl-heatmap.js,128行代码,无三维效果;

整合源码

github:cesium-plugin/cesium-heatmap-es6
324行代码

特点

  1. 提供三种绘制方式,实体(可贴模型,有三维效果)、图元、图层
  2. 提供重绘,通过摄像头的高度进行重绘
  3. 提供heatmap.js的所有配置参数入口
  4. 源码ts编写,发布支持es6和umd两种模式
  5. 支持npm安装

效果图

效果图

在这里插入图片描述
在这里插入图片描述

Cesium是一个用于展示地球数据的JavaScript库,可以通过它来实现热力图的展示。下面是一些步骤: 1. 获取数据:你需要获取包含热力图数据的数据源,可以是一个JSON文件或者是从服务器获取的数据。 2. 创建热力图:使用Cesium热力图插件(cesium-heatmap.js)来创建热力图。你需要将数据源传递给热力图插件,并设置一些基本的属性,例如热力图的颜色、半径、透明度等等。 3. 添加热力图到地球上:使用Cesium的实体(Entity)来添加热力图到地球上。你需要为实体设置位置、大小、旋转角度等等属性。 4. 显示热力图:将实体添加到Cesium的场景(Scene)中,并在场景中显示热力图。 下面是一个简单的示例代码: ```javascript // 获取数据 var dataSource = new Cesium.CzmlDataSource(); dataSource.loadUrl('data.json'); // 创建热力图 var heatmap = new CesiumHeatmap({ dataSource: dataSource, property: 'heat', radius: 10, maxOpacity: 0.5, minOpacity: 0 }); // 添加实体 var entity = viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(-97.0, 39.0), ellipse: { semiMinorAxis: 300000.0, semiMajorAxis: 300000.0, material: heatmap } }); // 显示热力图 viewer.zoomTo(viewer.entities); ``` 在这个示例中,我们从一个名为data.json的JSON文件中获取数据,创建了一个名为heatmap热力图,并将它作为材质添加到了一个椭圆实体上。最后,我们将实体添加到场景中并缩放到该实体的大小。 需要注意的是,Cesium热力图插件并不是官方支持的功能,需要手动引入cesium-heatmap.js文件。同时,热力图的性能也受到数据量的影响,如果数据量过大,可能会导致程序运行缓慢。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值