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 错误还是我遗漏了什么?

PS我试图找到父集群,循环遍历其中的所有标记,所有这些标记都没有 _icon 选项...

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

1 回答 1

0

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

不,如果您以前没有注意到,任何前面带有 _ 的东西都是Leaflet 术语中的私有变量。这意味着,如果您依赖任何前面带有 _ 的东西,那么当您使用它时,它很容易损坏

  • 升级单张
  • 使用插件
  • 使用不同的浏览器

而这个破损不是Leaflet的错,而是你自己的错。

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

于 2014-09-02T13:57:03.137 回答