具有特定半径的特定缩放时的热图渲染问题

时间:2015-06-29 12:01:54

标签: google-maps-api-3 heatmap

使用GoogleMaps API v3.19,3.20或3.exp,当我将半径设置为热图图层时,在某个缩放级别,渲染消失,Chrome的控制台会出现错误 Uncaught TypeError: Cannot read property '84' of undefined,其中'84'有时因坐标而异。此外,放大远离应用热图的区域,没有显示错误,虽然即使在更大的缩放时导航到该区域,我得到了相同的错误,并且图层只是像JPEG工件一样卡住,这让我相信那里坐标有问题。

放大和缩小并不能解决问题。

有关此主题的任何建议吗?任何已知的错误?

更新(共享一些半径值变化的代码):

    // heatmarkers is an array of WeightedLocation
    heatmap = new google.maps.visualization.HeatmapLayer({
        data     : heatmarkers,
        radius   : 27
    });

    heatmap.setMap(myMap);

    google.maps.event.addListener(myMap, 'zoom_changed', function(){
        if (heatmap){
            var zoom = myMap.getZoom();

            if (zoom >= 14){
                heatmap.set('radius', 90);
            } else {
                heatmap.set('radius', zoom * 2);    
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题并通过减少热图数据坐标中的小数位数来解决它,例如:

{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "Point",
    "coordinates": [
      6.76483154296875,
      51.226775403420554
    ]
  }
}

更改为:

{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "Point",
    "coordinates": [
      6.7648315429,
      51.22677540342
    ]
  }
}

希望这有帮助!