传单:MarkerCluster中的计数元素

问题描述 投票:0回答:1

因此,我在地图上有几家商店作为图层。我所有的商店都添加到了MarkerCluster中,并且其中一个也添加到了地图中,一切正常。但是我想在它的viewPort中显示有关商店的简短信息。

对于普通商店(层),这是第一个尝试的方法,但是群集组不起作用:(我从这个开始:

map.eachLayer(function(layer)

但是它不仅给了我商店,还给了我很多东西。所以我走得更远:

if(map.getBounds().contains(layer.getLatLng()))

并且按预期工作。

对于集群器而言并非如此。我尝试遍历这样的事情:

$.each(layer._childClusters[0]._markers, function()
{
    var element = this;

    if(map.getBounds().contains(element.getLatLng()))
    { ....

但是它不起作用。有时我将clusteredGroup(由4个商店组成)作为1层……和一个商店。有时是40。

确定集群本身内部存储的最佳方法是什么?

javascript dictionary leaflet markerclusterer markers
1个回答
0
投票

您应该能够遍历您的标记集群组中的各个子标记,或获取这些子标记的数组。然后,您可以在第一个示例中进行操作,可能像在第二个示例中那样在视口中过滤这些内容。

const mcg = L.markerClusterGroup();
mcg.addLayers(arrayOfMarkers);

// Loop through the child Markers:
mcg.eachLayer(function (layer) {
  if (map.getBounds().contains(layer.getLatLng())) {
    // Do something...
  }
});

// or get all child layers:
const childMarkers = mcg.getLayers();
© www.soinside.com 2019 - 2024. All rights reserved.