问题

请问个heatmap的问题:
目前我想实现在heatmap上增加popup,点击任意一点即可显示该位置颜色对应的数值。尝试了两种方法,均未能实现将地理位置map至heatmap二维坐标系。

我的思路

  1. 通过mars的heatLayer.getRectangle({isFormat: true})取得地理的xmin, xmax, ymin, ymax。
    2.1 通过heatLayer._heat?._config?.container取得canvas dom,从其style取得width, height
    2.2 或者通过以下code取得width, height:
    let canvasBound = heatLayer._last_mBounds,
    width = canvasBound.xmax - canvasBound.xmin,
    height = canvasBound.ymax - canvasBound.ymin
  2. 对某地理坐标,通过以上信息将地理位置map至heatmap二维坐标
    x = width (lng - xmin) / (xmax - xmin),
    y = height
    (lat - ymin) / (ymax - ymin);
  3. 通过heatmap instance的method获取对应位置的值:
    heatLayer._heat.getValueAt({
    x: String(x),
    y: String(y)
    })

但是heatmap显示热力色块的地方显示计算的数值为0,一些完全没有热力色块的地方反而有值。
猜测是我map地理位置=>二维坐标的方法有误,可否请您指点?谢谢

解决

在mars3d V3.3.9版本之后支持了此功能
问题链接: https://gitee.com/marsgis/mars3d/issues/I577N0?from=project-issue