Проблема отрисовки тепловой карты при определенном увеличении с определенным радиусом
При использовании 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
]
}
}
Надеюсь это поможет!