Ответ 1
Перейдите по каждому маркеру и установите для этой карты маркера значение null. Это удалит маркер с карты.
как я могу удалить все кластерные значки (кластерные маркеры) с карты? попробовал с советами вроде:
API Карт Google 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();
но, опять же, значки кластеров все еще существуют на карте.
что еще мне нужно сделать, чтобы удалить эти значки кластера с моей карты? пожалуйста, помогите...
Перейдите по каждому маркеру и установите для этой карты маркера значение 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);
Это то, что я делаю. У меня много маркеров, но когда я переключаюсь на тепловую карту, я хочу удалить все маркеры и кластеры. Когда я создаю маркер, я добавляю его в массив глобальных маркеров
markers.push(marker);
Я определяю кластер, подобный этому
markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);
Когда я нажимаю кнопку, чтобы показать тепловую карту
$.each(markers, function(k, v){
v.setVisible(false);
});
markerCluster.repaint();
Когда repaint()
вызывается с скрытым игнорированием, он скрывает все значки кластера.