Leaflet标记聚类停止自动重新聚类当缩放时

3
当您放大或缩小地图时,标记聚类会自动“重新聚类”,即重新计算聚类。是否有选项可以禁用在更改缩放时的自动重新聚类?
2个回答

3
根据您所需要实现的具体目标,您可能会对Leaflet.MarkerCluster.Freezable子插件感兴趣:
当被冻结/禁用时,聚类将不再在地图缩放时拆分/合并,但保留它们作为指定缩放级别上的状态。
例如,如果您希望集群反映缩放15个配置:
var map = L.map("map"),
  mcg = L.markerClusterGroup(options);

mcg.addLayers(arrayOfMarkers);
mcg.addTo(map);

mcg.freezeAtZoom(15);

免责声明:我是该子插件的作者。


假设我不想拆分一些标记,因为人们在放大时不应该看到精确的位置。是否有一种方式只冻结一些标记而将其他标记拆分? - Mike
@Mike:一个可能的解决方案就是只为它们创建一个标记,可能带有一个虚假的“聚类”图标,并更改聚类如何计算其子项数量并显示该数字(通常使用额外的标记属性而不是直接子项计数)。但是,如果客户端已经可以访问精确位置,有动机的人仍然可以检索这些数据,因此安全性相对较弱。如果您需要进一步帮助,请随时提出新问题。 - ghybs

2
“当缩放改变时,是否有禁用自动重新聚类的选项?”
“没有。”
在 Leaflet.MarkerCluster 中,聚类取决于 maxClusterRadius 选项的值,该值以屏幕像素为单位,在当前缩放级别下进行测量。我鼓励您查看其他 Leaflet 聚类插件,因为其中一些具有不依赖于缩放级别的聚类算法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接