MarkerClusterGroup не обновляет данные предполагаемым способом
В настоящее время я разрабатываю визуал для Power BI, используя библиотеку листовок и markerclustergroup в качестве своего плагина.
MarkerClusterGroup отлично работает, когда не выполняется фильтрация данных, используемых в DataView.
Вот что я сделал до сих пор..
// Удалить слой кластеров, когда новые данные доступны. if (this.centr) {
this.clusters.clearLayers();
}
// Здесь я создал свои маркеры:
this.centr = L.geoJson(centroids,{
pointToLayer: function(feature,geometry){
var marker = new customMarker(geometry,{icon:icon});
marker.value = Population;
marker.name = Name;
return marker;
}
});
// Здесь я очищаю кластеры, если они не пусты для случая применения фильтра.
if (this.clusters != undefined){
this.clusters.clearLayers();
}
// Здесь Создание кластеров
this.clusters = L.markerClusterGroup({
polygonOptions: {
fillColor: "Blue",
color:"black"
},
maxClusterRadius:100,
singleMarkerMode: true,
showCoverageOnHover: true,
iconCreateFunction: function(cluster) {
// Some Code
if (volume == 0){
return L.divIcon({html: '<b> Empty !</b>'});
}
else
return L.divIcon({html: '<b>' + volume + '</b>', iconSize: [47,15]});
}
});
this.clusters.addLayer(this.centr);
this.map.addLayer(this.clusters);
Применяя этот код, когда я фильтрую некоторые данные, я получаю новые кластеры, но когда я уменьшаю или увеличиваю масштаб (до кластера), я получаю эту ошибку:
Uncaught TypeError: Cannot read property '_leaflet_id' of undefined
at n (<anonymous>:38:536)
at e.removeLayer (<anonymous>:40:805)
at e._hideCoverage (<anonymous>:374:20)
at e.fire (<anonymous>:38:16896)
at e._moveEnd (<anonymous>:39:9725)
at e.<anonymous> (<anonymous>:39:16415)
1 ответ
if (this.clusters != undefined)
Привет,
Попробуй сif (this.clusters !== undefined)
с !==