Leaflet Map:MarkerCluster在layersGroups下显示/隐藏标记

时间:2015-08-22 18:51:02

标签: javascript jquery leaflet markerclusterer

我尝试实现的目标是让MarkerCluster插件与传单中的layersGroup一起使用,如下例所示:http://bl.ocks.org/ismyrnow/6123517

所以在我的代码中我创建了MarkerCluster函数

var markersCluster = new L.MarkerClusterGroup({ 
  iconCreateFunction: function(cluster){ return new L.DivIcon({ html: cluster.getChildCount(), className: 'map__marker-cluster', iconSize:   L.point(40, 40) }); } });

然后我将它们添加到我的标记和地图

marker.bindPopup(popup).addTo(allMarkers); //allMarkers is one of my layersGroup
markersCluster.addLayer(allMarkers);
map.addLayer(markersCluster);

但同时我将标记添加到layersGroup marker.bindPopup(dit.popup).addTo(dit.allMarkers); //dit.allMarkers是我的图层。它将在图例中显示一个复选框,并在单击的标记显示或隐藏时显示。

因此,当我在地图图例上单击allMarkers复选框时,群集聚合的标记仍然可见。

我没有找到任何与layersGroup一起使用的MarkClusters的例子,所以我想知道是否可能..

1 个答案:

答案 0 :(得分:0)

我认为正在做

marker.bindPopup(popup).addTo(allMarkers);

有点无用,因为MarkerClusterGroup类只是layerGroup的一个扩展,这意味着您将标记添加到您添加到layerGroup的layerGroup。

为什么不直接在MarkerClusterGroup中添加标记?

如果你想同时控制MarkerClusterGroup和layerGroup,那么就把你的标记添加到两者中。

marker.addTo(allMarkers);
marker.addTo(markersCluster);
map.addLayer(allMarkers); // when toggled on/off, will show/hide markers
map.addLayer(markersCluster); // will show clusters

从技术上讲,layerGroups只是一个" abstract"收集标记,多边形,...以及轻松管理它们的工具,它们没有DOM关系。