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

  显示原文与译文双语对照的内容
0 0

可以通过以下方式向我解释为什么当我从一层向另一层移动点时,为什么?

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 Bug 还是我漏掉了什么东西?

P.S 。我试图找到父集群,遍历它内部的所有标记,并且所有标记都没有_icon选项。

angular.forEach(mapItems.getVisibleParent(previousLayer)._markers, function (marker) {
 console.log(marker._icon);//error every time
});
时间:原作者:1个回答

0 0

是某种 MarkerCluster Bug 还是我漏掉了什么东西?

如果以前没有注意到,在Leaflet之前用a 任何东西都是一个 private 变量,在 Leaflet terminology 。 这意味着,如果你依靠它的前面的任何一个,它会很容易的断开,当你

  • 升级传单
  • 使用插件
  • 使用其他浏览器

这个破损不是传单上的错误,而是你自己的。

答:不要使用 ._icon,在这种情况下,用 console.log 来内省标记,找出它是什么类型。

原作者:
...