设置MarkerClusterer的可见性

toy*_*fun 3 visibility markerclusterer

试图切换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;
}
Run Code Online (Sandbox Code Playgroud)

标记切换但有两个问题:
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;
}
Run Code Online (Sandbox Code Playgroud)

toy*_*fun 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;
}  
Run Code Online (Sandbox Code Playgroud)

repaint()设置可见性后调用已排序所有问题.
原始的MarkerClusterer没有这样的功能.