计算MarkerCluster中的元素

因此,我在地图上有几家商店作为图层。 我所有的商店都添加到了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。

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

calvin1 回答:计算MarkerCluster中的元素

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

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();
本文链接:https://www.f2er.com/3161103.html

大家都在问