Google Maps Api v3-как удалить значки кластера?

как удалить все значки кластера (маркеры кластера) с карты? попробовал с советами вроде:

Google Maps API v3: Как удалить все маркеры?

... но это не сработало.

можете ли вы помочь мне, как этого достичь?

спасибо заранее!

обновление (2010-11-23)

маркеры хранятся в массиве с

var markersClust = Array();

... и добавлены с (комбинация с php):

markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);

var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);

и он отлично работает.

но я не могу удалить их с карты, и это меня гонит...

попытался удалить маркеры (и я) с

for ( var i=0; i < markersClust.length; i++) {
    markersClust[i].setMap(null);
}
markersClust = []; 

но значки кластеров все еще на карте.

также я пробовал такие вещи, как:

markerClusterer.clearMarkers();

и как

MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();

но, опять же, значки кластеров все еще там, на карте.

что еще мне нужно сделать, чтобы удалить эти значки кластера из моя карта? пожалуйста помочь...

4 ответов


повторите каждый маркер и установите для карты этого маркера значение null. Это уберет маркер с карты.


Это правильный способ сделать это:

// Unset all markers
var i = 0, l = markers.length;
for (i; i<l; i++) {
    markers[i].setMap(null)
}
markers = [];

// Clears all clusters and markers from the clusterer.
markerClusterer.clearMarkers();

демо:http://jsfiddle.net/HoffZ/gEzxx/

документация:https://googlemaps.github.io/js-marker-clusterer/docs/reference.html


У меня была та же проблема. Я исправил это, только объявив мой MarkerClusterer один раз во время инициализации:

markerCluster = new MarkerClusterer(map);

это то, что я делаю. У меня много маркеров, но когда я переключаюсь на heatmap, я хочу удалить все маркеры и кластеризатор. Когда я создаю маркер, я добавляю его в глобальный массив маркеров

 markers.push(marker);

Я определяю clustere следующим образом

markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);

когда я нажимаю кнопку, чтобы показать тепловую карту

$.each(markers, function(k, v){
    v.setVisible(false);
});
markerCluster.repaint();

, когда repaint() вызывается с ignore hidden он скрывает все значки кластера.