将Leaflet.markercluster与Leaflet一起使用时,缺少_icon选项和_icon.classList

时间:2014-09-01 11:04:37

标签: leaflet leaflet.markercluster

有人可以向我解释为什么当我通过这样做将点从一层移动到另一层时:

var previousLayer = activeItem.getLayers()[0];

activeItem.removeLayer(previousLayer); // activeItem is FeatureGroup
mapItems.addLayer(previousLayer); // mapItems is MarkerClusterGroup

然后尝试使用以下命令更改标记类:

previousLayer._icon.classList.remove('marker-active');
previousLayer._icon.classList.add('marker-shown');

我得到并且当该标记进入地图上的可见群集时,_icon为空?

是某种MarkerCluster错误还是我错过了什么?

P.S。我试图找到父簇,循环遍历其中的所有标记,并且所有这些标记都没有_icon选项...

angular.forEach(mapItems.getVisibleParent(previousLayer)._markers, function (marker) {
     console.log(marker._icon); // error every time
});

1 个答案:

答案 0 :(得分:0)

  

是某种MarkerCluster错误还是我错过了什么?

没有。如果您以前没有注意到,前面带有_的任何内容都是Leaflet术语中的私有变量。这意味着,如果你依赖于前面带有_的任何东西,当你

时它很容易就会破裂
  • 升级宣传单
  • 使用插件
  • 使用其他浏览器

这次破坏不是Leaflet的错,而是你自己的错。

答案:请勿使用._icon,在这种情况下,请使用console.log对标记进行内省,以找出它的类型。