Google地图热图图层点半径

eqz*_*qzx 11 javascript google-maps google-earth google-maps-api-3

我希望能够以米为单位有效地指定点的半径.配置API使得radius属性保持为像素的常量,因此放大会导致热图侵蚀(我知道你可以使热图不会被dissipating属性侵蚀,但这会引发其他问题,即必须手动混乱半径让我的热图正确显示.这是热图参考.

具体来说,我正试图在地图上显示概率分布.我有图像形式的分布,并希望将0-1权重映射到热图图层.(我可以,也不想,覆盖图像).

有什么建议?

lcc*_*sco 13

好的,我尝试了一些东西:

使用墨卡托投影示例(检查源)从latLng中提取任意点的x,y像素坐标,以后使用几何库,特别是computeOffset函数获取另一个latLng距离"DM"(以米为单位)到在前一个的右边,得到差值(以像素为单位)作为绝对值"DP",从那里得到你的"pixelsPerMeter"比率DP/DM.

那么,如果您希望半径为100米,则只需将属性设置为 {radius:Math.floor(desiredRadiusPerPointInMeters*pixelsPerMeter)}

要处理缩放的变化,只需使用一个监听器

 google.maps.event.addListener(map, 'zoom_changed', function () {
          heatmap.setOptions({radius:getNewRadius()});
      });
Run Code Online (Sandbox Code Playgroud)

我上传了一个小例子(尝试缩放),您可以使用底部的按钮检查距离是否正确.