Leaflet.markercluster - 如何计算 markerClusterGroup 中的所有标记?

Leaflet.markercluster - how to count all markers in a markerClusterGroup?

我正在使用 Leaflet.markercluster

这是我的代码,基于各种相关问题:

    // Takes an L.markerClusterGroup as input parameter
    Self.GetNumMarkersInClusterGroup = function(clusterGroup)
    {
        Self.map.eachLayer(function (layer) {
            if (layer.getChildCount) {
// somehow need to check here for our desired cluter group

                console.log('Cluster group has ' + layer._childClusters.length + 'layers')        ;
                console.log('With a total of ' + layer._childCount + ' markers');  
                }
        });
    }       // GetNumMarkersInClusterGroup()

但是,layer.getChildCount 未定义 :-( 我做错了什么?


相关问题:

的确,在如何使用Leaflet.markercluster插件方面可能有些混乱:

  • 有整体的 MarkerClusterGroup (MCG) 对象,即调用 L.markerClusterGroup()
  • 时得到的对象
  • 集群标记,这是当您的各个标记聚集在一起时 MCG 在地图上显示的内容
  • 您添加到 MCG 中的单个标记

如果你的 clusterGroup 实际上是一个 MCG,那么你可以简单地使用它扩展 Leaflet 标准功能组和图层组的事实,特别是它有一个 getLayers() method:

Returns an array of all the layers added to the group.

因此,如果您希望 MCG 中有 总数 个标记,您可以执行以下操作: clusterGroup.getLayers().length

为了完整起见,MCG 还具有在 Leaflet.markercluster 文档中称为 "group methods"

的方法

getChildCount() method(和 getAllChildMarkers())用于聚类标记,例如使用 "clusterclick" 事件等时会得到什么。