Проблема отрисовки тепловой карты при определенном увеличении с определенным радиусом

При использовании 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 ответ

Решение

У меня была точно такая же проблема, и я решил ее, уменьшив количество десятичных знаков в координатах данных моей тепловой карты, например:

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

был изменен на:

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

Надеюсь это поможет!

Другие вопросы по тегам