Leaflet MarkerCluster - 如何在事件中获取集群内的标记(mouseover,mouseclick)?

时间:2018-03-13 17:32:01

标签: javascript leaflet leaflet.markercluster

我需要在触发特定事件(clustermouseoverclusterclick)时获取群集内的标记。我正在开发人员控制台中检查事件对象e,但e.layer._markers是一个空数组。

group_markers.on('clustermouseover', function (e) {
    console.log('clustermouseover');
    console.log(e);
});

group_markersL.markerClusterGroup对象。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

使用图层对象的getAllChildMarkers方法(e.layer)。例如:

markers.on('clustermouseover', function (e) {
    console.log('Number of markers: ' + e.layer.getAllChildMarkers().length);
});

根据Leaflet.markercluster docs

  

getAllChildMarkers:返回该群集中包含的总标记数组。

这是a JSBin的工作示例。

下划线(_)通常用于表示对象属性(例如_markers)或方法是私有的。通常,您不希望访问私有对象成员,因为它们只能在内部使用。

旁注:

如果您在控制台中搜索事件的属性,请查看layer对象的原型,然后您将找到getAllChildMarkers方法:

Layer prototype properties