MarkerClusterGroup不以所谓的方式更新数据

时间:2017-07-22 20:39:24

标签: javascript leaflet leaflet.markercluster pbiviz

我目前正在使用传单库和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)

1 个答案:

答案 0 :(得分:0)

if (this.clusters != undefined)

您好,

试试 if (this.clusters !== undefined)!==

。{