使用 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.
我正在使用 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.