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;
}

マーカーはトグルしますが、2 つの問題が
あります。 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;
}
4

1 に答える 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にはそのような機能はありません。

于 2012-07-17T08:20:47.750 に答える