2012-06-26 3 views
3

Попытки переключать видимость MarkerClusterer (V3):Установить видимость MarkerClusterer

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

ответ

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 не имеет такой функции.

Смежные вопросы