spiderfy:Spiderfies 该集群的子标记
我认为如果我有这样的代码,单击一个标记将导致包含的标记簇蜘蛛化(如果它确实是一个标记簇,而不是一个独立的标记)。
const foo = L.markerClusterGroup();
for a bunch of points {
const marker = L.marker(latlng);
marker.on('click', function(e) {
… do stuff …
foo.spiderfy(e.target);
});
foo.addLayer(marker);
}
map.addLayer(foo);
但是,我收到错误:
foo.spiderfy()
不是函数。我怎样才能实现我想要的?
总而言之,如果我点击一个集群,它就会出现蜘蛛网。然后,如果我单击该集群中的单个标记并触发单击事件,我希望该集群保持蜘蛛状,而不是折叠成一个集群。
看一下这段代码,它应该可以工作。
const foo = L.markerClusterGroup();
for (const point of points) {
const marker = L.marker(point.latlng);
marker.on('click', function(e) {
// We find the right cluster
const cluster = foo.getVisibleParent(marker);
if (cluster) {
// Spiderfy only if marker is in cluster
foo.spiderfy(cluster);
}
});
foo.addLayer(marker);
}
map.addLayer(foo);
foo.getVisibleParent(marker) 返回标记的最近的可见父级,它可能是一个簇。 如果标记实际上在集群中,则 foo.spiderfy(cluster) 在集群上执行“spiderfy”。