使用 Leaflet markercluster,如何在不更改缩放级别的情况下在集群和非集群之间切换?

With Leaflet markercluster, how can I switch between clustered and unclustered without changing zoom level?

我正在使用 Leaflet.markercluster 插件来聚类我的点。

但是,用户要求在聚类视图和非聚类视图之间切换的功能(基本上,他们希望以高缩放比例查看所有点)。

我知道我可以在特定缩放级别禁用聚类:

markers = new L.MarkerClusterGroup({
    disableClusteringAtZoom: 8,
})

不过,当我进一步缩小时,如何强制所有内容取消聚类?

您可能会对 Leaflet.MarkerCluster.Freezable plugin 感兴趣。

它在 Leaflet.markercluster 上提供了额外的方法,包括 disableClustering()enableClustering(),使您能够以编程方式(例如单击按钮)取消聚类/聚类,而无需用户缩放in/out.

另请参阅插件 demo page

当然,每次调用 disableClustering() 时都应该小心,因为您可能会立即加载 所有 地图上的标记(如果您将其缩小到完整程度)。如果它尝试加载数千个标记,您可能会冻结浏览器甚至崩溃。

Disclaimer: I am the author of this plugin.