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

标签 javascript leaflet leaflet.markercluster

我需要在触发特定事件(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)或方法是私有(private)的。通常,您不想访问私有(private)对象成员,因为它们只应在内部使用。

旁注:

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

Layer prototype properties

关于javascript - Leaflet MarkerCluster - 如何在事件(鼠标悬停,鼠标单击)时获取集群内的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49262404/

相关文章:

r - 当我更改切片图层时,传单和 Shiny 的 R 圆圈不会与 map$addCircle 一起出现

leaflet - 使用 Marker Cluster 插件时突出显示 Leaflet map 项

javascript - 传单标记簇 : open popup on childmarker after zoom in

javascript - 折叠选项卡 "manually"不要更改启动按钮上的文本

javascript - 如何在 ASP.Net 中为用户控件添加 Javascript 对象

javascript - 为什么具有许多有效数字的数字在 C# 和 JavaScript 中的处理方式不同?

javascript - 为什么在js文件中用json声明变量而不是读取json?

javascript - js - 检查字符串是否不包含给定的字符

r - 如何将传单等值线图中的 NA 值更改为 NULL?

javascript - geoJson 属性添加/更新