尝试切换 MarkerClusterer (V3) 的可见性:
var hydrantsShowing = true;
function ToggleHydrants() {
var markers = hydrantsClusterer.getMarkers();
for (var i = 0; i < markers.length; i++) {
markers[i].setVisible(!hydrantsShowing);
}
hydrantsShowing = !hydrantsShowing;
}
标记确实会切换,但有两个问题:
1. map 必须平移一点才能发生变化。
2. MarkerClusterer 图标(带有数字)始终存在,即使在标记不可见之后也是如此。
我也尝试过使用 setMap 方法,但具有类似的行为:
var hydrantsShowing = true;
function ToggleHydrants() {
var markers = hydrantsClusterer.getMarkers();
if (hydrantsShowing) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
}
else {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(gmap);
}
}
hydrantsShowing = !hydrantsShowing;
}
最佳答案
通过使用 MarkerClustererPlus 解决了这个问题。
var hydrantsShowing = true;
function ToggleHydrants() {
var markers = hydrantsClusterer.getMarkers();
for (var i = 0; i < markers.length; i++) {
markers[i].setVisible(!hydrantsShowing);
}
hydrantsClusterer.repaint();
hydrantsShowing = !hydrantsShowing;
}
设置可见性后调用 repaint()
解决所有问题。
原来的MarkerClusterer没有这个功能。
关于visibility - 设置 MarkerClusterer 的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201578/