首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚类时从Leaflet.markercluster中移除标记

聚类时从Leaflet.markercluster中移除标记
EN

Stack Overflow用户
提问于 2021-02-24 06:33:35
回答 1查看 579关注 0票数 2

如果它们聚集在一起,如何删除标记?因为如果它们是分组的,则不能删除。但一旦分组消失,一切就都好了。

在尝试删除之前:

在成功删除后:

添加标记代码:

代码语言:javascript
复制
var markers = L.markerClusterGroup();
map.addLayer(markers);

L.geoJSON(data, {
                pointToLayer: pointToLayer, 
                onEachFeature: onEachFeature,
            })
            .on('click', markerOnClick)
            .addTo(markers);

删除标记代码:

代码语言:javascript
复制
$.each(markers._map._layers, function (ml) {
    if (markers._map._layers[ml].feature) {
        if(markers._map._layers[ml].feature.properties.obj == 2 && markers._map._layers[ml].feature.properties.type == 1){                      
             markers.removeLayer(this);
        }            
    }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-24 09:04:56

只需在您的eachLayer method标记集群组上使用markers来迭代每个子标记(不管它们当前是否是集群的)。

代码语言:javascript
复制
markers.eachLayer(layer => {
  if(layer.feature.properties.obj == 2 && layer.feature.properties.type == 1) {                      
    markers.removeLayer(layer);
  }
});

当访问markers._map._layers时,您将查找映射中当前的每个层,但是当标记被集群时,Leaflet.markercluster会删除它们(取而代之的是集群标记)。这就是为什么你再也找不到一些标记了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66345788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档