尝试切换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.地图必须稍微平移才能发生变化
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;
}
答案 0 :(得分:5)
使用 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 没有这样的功能。