使用Leaflet 0.7.3和标记集群的最后版本(https://github.com/Leaflet/Leaflet.markercluster),我想重现我使用Google API和相关库(Google Marker Cluster V3& Overlapping Marker Spiderfier)所做的行为V3)。
当您拥有群集的地图并单击一个群集时,API将缩放以绑定此群集中包含的标记。但是当所有标记完全位于同一位置时,缩放将被设置为最大值,这通常很难看(标记周围没有上下文或只有一条街道)。当用户点击一个具有如下代码的群集时,我想限制缩放级别:
markers.on('clusterclick', function (a) {
map.fitBounds(a.layer.getBounds());
if (map.getZoom() > 14) {
map.setZoom(14);
}
});
使用这样的代码,缩放被正确限制为14但是蜘蛛网没有完成(即使我明确地调用a.layer.spiderfy()。是否有我遗漏的东西?
这是小提琴:http://jsfiddle.net/953u41ax/(点击例如36然后12)
答案 0 :(得分:1)
Eric,您可以通过阻止点击缩放然后在图层上手动调用spiderfy来实现此目的。
地图设置:
var stationsCluster = new L.MarkerClusterGroup({
maxClusterRadius: 60,
iconCreateFunction: null,
spiderfyOnMaxZoom: true,
showCoverageOnHover: true,
zoomToBoundsOnClick: false
Spidery Listener:
stationsCluster.on('clusterclick', function (a) {
a.layer.spiderfy();
});
答案 1 :(得分:0)
您可以在地图上设置最大缩放级别:
map._layersMaxZoom=8
然后以相同的缩放级别禁用聚类:
var markers = L.markerClusterGroup({
disableClusteringAtZoom: 8
});
你可以玩这个以获得所需的效果,这只是一个例子。 JSFiddle在这里http://jsfiddle.net/953u41ax/2/