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 он скрывает все значки кластера.