设置MarkerClusterer的可见性

3
尝试切换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;
}
1个回答

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 没有这样的功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接