Leaflet MarkerCluster - 如何在事件(鼠标悬停,鼠标单击)时获取集群内的标记?

Leaflet MarkerCluster - how to get markers inside cluster on event (mouseover, mouseclick)?

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

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

group_markersL.markerClusterGroup 对象。

在此先感谢您的帮助!

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

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

根据 Leaflet.markercluster docs

getAllChildMarkers: Returns the array of total markers contained within that cluster.

这里是 a JSBin 一个工作示例。

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

旁注:

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