Google Maps JavaScript API: как убрать отдельный маркер? - PullRequest
0 голосов
/ 12 ноября 2010

Я использую библиотеку Google Maps v3 с библиотекой Multi-Marker , которая расширяет функциональность Google Maps для сверхбыстрого добавления значков маркеров карты на карту.

Я не могу понять, как удалить одиночный , отдельный маркер карты, используя мультимаркерную библиотеку, указанную выше.

У кого-нибудь есть идеи, как мне сделать это, используя мульти-маркерная библиотека (и / или Google Maps)?Я пытался связаться с ведущим разработчиком проекта, но не получил ответа.

Спасибо за любую помощь.

Кроме того, есть дополнительная информация по этой библиотеке

http://blog.redfin.com/devblog/2010/07/introducing_multimarker_the_fastest_way_to_add_many_hundreds_or_thousands_of_markers_on_google_maps.html

ОБНОВЛЕНИЕ :

Я привел пример кода того, что я делаю.Я хочу динамически удалять определенные значки маркеров карты (оверлеи), но я пытаюсь понять, как это сделать.Любой совет будет очень признателен.Спасибо

Живой пример:

http://multimarker.googlecode.com/svn/trunk/fast-marker-overlay/maps-v3/example/clickable.html

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

Обычно, используя только API Google Maps, чтобы удалить наложение с карты, вам нужно вызвать метод setMap (null) для наложения.

Как я вижу, библиотека Multi-Markerиспользует массив для хранения всех маркеров и создает наложение для отображения на карте, наложение которого содержит маркеры.Чтобы удалить его, нужно удалить маркер из массива (нужно знать его положение в массиве) и перерисовать наложение.

Редактировать:

Вам нужно что-то похожее на функциюclearOverlays () {var i = overlays.length;while (i--) {var overlay = overlays [i];if (overlay) overlay.setMap (null);удалить оверлеи [i];}}

Но вам нужно знать позицию в массиве маркера, который вы хотите удалить.Функция будет выглядеть так:

 function clearOneOverlay(var position) { var overlay = overlays[position]; if (overlay) overlay.setMap(null); delete overlays[position]; }
0 голосов
/ 12 ноября 2010

попробуйте: запомните, какой маркер вы щелкнули, а затем удалите его

рассмотрите следующий код (Google Maps v2)

var current_marker;

GEvent.addListener(marker, "click", function() {
          current_marker = marker;
      });

//remove later
current_marker.setMap(null);
...