Google Maps Api v3 - как убрать иконки кластера? - PullRequest
20 голосов
/ 22 ноября 2010

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

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 ]

43 голосов
/ 26 марта 2013

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

// 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

3 голосов
/ 03 октября 2012

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

markerCluster = new MarkerClusterer(map);
0 голосов
/ 21 января 2013

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

 markers.push(marker);

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

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

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

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

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

0 голосов
/ 22 ноября 2010

Переберите каждый маркер и установите карту этого маркера в ноль. Это уберет маркер с карты.

...