我尝试实现的目标是让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的例子,所以我想知道是否可能..
答案 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关系。