热力图使用问题

9/13/2024

热力图是第三方插件,需要引入第三方,否则会出现mars3d.layer.HeatLayer is not a constructor错误,引入方式可参考 图层相关问题 - 第三方相关

想要了解更多热力图本身机制,可参阅 api:https://www.patrick-wied.at/static/heatmapjs/docs.html

# 高度热力图范围内绘制点对象,设置贴地后位置异常

image

设置贴地后,点对象加载在了热力图上面

entity 对象没有问题,主要是 primitive 对象会存在该问题;

可设置下以下参数

 clampToGroundExact: true,
 clampToGround: true,
1
2

# 热力图渲染在模型上,视角移至正上方时,出现白色方块

image

可设置下 logarithmicDepthBuffer 参数;

"scene":{
  "logarithmicDepthBuffer":false
},
1
2
3

# 如何删除其中的某个点位

热力图点位很多,想要删除其中的一个两个点位;是需要重新渲染的,可参考动态热力图示例 (opens new window)

# 栅格 转 HeatMap 格式的 json

栅格具体是指类似于 dem tif 文件

需要 arcgis desktop 软件里去转换,栅格转矢量,矢量再转 geojson

# 裁剪边界,想实现多边形的边界

rectangle 只是外接边界, 多边形范围 是根据你数据来的,你传入的数据坐标决定了渲染的热力图范围。可以在外部排除不显示区域的数据后传入。

# 热力图的提示框中要增加一个数据中存在的参数

image

目前不支持,仅支持 data 值的附加到图片及取值,要取只能通过经纬度和 data 匹配去找 该参数

getPointData 是基于 canves 取对应色值,再取 data

getValueAt: function(point) {
  var value;
  var shadowCtx = this.shadowCtx;
  var img = shadowCtx.getImageData(point.x, point.y, 1, 1);
  var data = img.data[3];
  var max = this._max;
  var min = this._min;

  value = (Math.abs(max-min) * (data/255)) >> 0;

  return value;
}
1
2
3
4
5
6
7
8
9
10
11
12

热力图就是这种机制,点位之间是插值的,要实现也是需要找到网格数据的最近点,再找你说的关联数据

这是算法问题,不是地图开发问题。如果需要贴心高效服务,可以考虑购买授权。

最后更新: 9/20/2024, 5:37:18 PM