我目前正在使用传单库和markerclustergroup作为其插件开发功能BI的视觉效果。
当没有对dataView上使用的数据执行过滤时,MarkerClusterGroup工作正常。
这是我到目前为止所做的......
//在新数据可用时删除群集层。 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)
答案 0 :(得分:0)
if (this.clusters != undefined)
您好,
试试
if (this.clusters !== undefined)
与!==