Дополнительно
Google Maps API v3: Как удалить все маркеры?
В Google Maps API v2, если я хотел удалить все маркеры карты, я мог просто сделать это:
map.clearOverlays();
Как это сделать в Google Maps API v3?
Если посмотреть на Reference API, то мне это неясно.
421
20
Просто выполните следующие действия:
И. объявить глобальную переменную:
Второй. Определим функцию:
Или
Раздел III. Нажимаем маркеры в 'markerArray' до вызова следующий:
ИЖ. Позвони в clearOverlays (); " или " карту.clearOverlays (); функция, где требуется.
Что's оно!!
Такая же проблема. Этот код не'т работать больше.
Я'вэ исправить его, изменить clearMarkers метод таким образом:
set_map(нуль) ---> setMap(null)и
Документация была обновлена, чтобы включить подробную информацию по теме: https://developers.google.com/maps/documentation/javascript/markers#remove
Похоже, что в V3 такой функции пока нет.
Люди предлагают хранить ссылки на все маркеры, которые есть на карте, в массиве. Затем, когда вы захотите удалить их все, просто пройдитесь по массиву и вызовите метод .setMap(null) для каждой из ссылок.
См. этот вопрос для получения дополнительной информации/кода.
Моя версия:
Это было самое простое из всех решений первоначально написал YingYang марта 11 '14 в 15:049 под оригинальный ответ на оригинальный вопрос пользователям
Я использую свое же решение 2,5 года спустя с помощью карт Google В3.18 и он работает как шарм
На новой версии v3, они рекомендуют держать в массивах. как следовать.
См. пример в оверлей-обзор.
Решение довольно простое. Вы можете использовать метод:
маркер.setMap(карта);
. Здесь вы можете определить, на какой карте PIN-код появится.Так, если вы установите
нуль
в этом методе (маркер.setMap(нуль);
), пин-код исчезнет.Теперь, вы можете написать на ведьм функция пока исчезнуть все маркеры на карте.
Вы просто добавить, чтобы положить ваши контакты в массив и объявлять их с маркерами.нажимаем (пин your_new) или, например, это код:
Это ведьма функция может установить или исчезают все маркеры из массива на карте:
Исчезнут все ваши маркеры, вы должны вызвать функцию с
нуля
:И, чтобы удалить и исчезнуть, все ваши маркеры, вы должны сбросить Ваш массив маркеров такой:
Это мой полный код. Это самое простое, я мог бы сократить. Быть уход полный вы можете заменить
YOUR_API_KEY
в код вашего ключа Google API-интерфейс:Вы можете проконсультироваться разработчиков Google или полной документации, кроме того, веб-сайте разработчиков Google.
В Google'демо-галерея с демо о том, как они делают это:
http://code.google.com/apis/maps/documentation/javascript/examples/overlay-remove.html
Вы можете просмотреть исходный код, чтобы увидеть, как они добавить маркеры.
Длинная короткая история, они держат маркеры в глобальный массив. При очистке/удаление их, они цикл через массив и называют ".setMap(значение null)" на данный маркер объекта.
Тем не менее, этот пример показывает один 'трюк'. на "ясный" в данном примере означает удаление их с карты, но держать их в массив, который позволяет приложению быстро повторно добавить их на карте. В некотором смысле, это действует как-то "прячется" в них.
на "Удалить" и очищает массив также.
работает только на IE.
Чистое и простое применение rolinger'ы ответ.
Здесь вы можете найти пример как удалить маркеры:
https://developers.google.com/maps/documentation/javascript/examples/marker-remove?hl=es
Функция "
set_map
", опубликованная в обоих ответах, похоже, больше не работает в API Google Maps v3.Интересно, что произошло
Обновление:
Похоже, Google изменил свой API так, что "
set_map
" не является "setMap
".http://code.google.com/apis/maps/documentation/v3/reference.html
Следующий С отлично Анон работает, хотя и с проблесками, когда неоднократно сняв накладки.
Просто выполните следующие действия:
И. объявить глобальную переменную:
Второй. Определим функцию:
Раздел III. Нажимаем маркеры в 'markerArray' до вызова следующих функций:
ИЖ. Вызов функции
clearOverlays()
там, где это необходимо.Что's оно!!
Надеемся, что вам помогут.
Я нашел с помощью библиотеки markermanager в Google-Карты-утилиты-библиотека-В3 проект как самый простой способ.
1. Настроить MarkerManager
2. Добавить маркеры к MarkerManager
3. Для четких маркеров, вам просто нужно позвонить в MarkerManger'ы
clearMarkers()
функцияВы тоже можете это сделать таким образом:
Самый чистый способ сделать это, чтобы перебрать все возможности карты. Маркеры (вместе с полигонов, полилиний и т. д.) хранятся в слой данных карты.
В случае, если маркеры добавляются через диспетчер чертежей, это'ы лучше создать глобальный массив маркеров или сдвигают маркеры в слой данных при создании вот так:
Я рекомендую второй подход, поскольку он позволяет использовать другие приложения Google.карты.методы класса данные позже.
Чтобы очистить все слои, включая полигонов, маркеры и т. д...
просто использовать:
карта = новый Google.карты.Карта(документ.метода getElementById (на"map_canvas и"), myOptions);}`
Вот функция, которую я написал для этого форма мне на карту приложения:
Я просто попытался это с kmlLayer.setMap(null) и это сработало. Не уверен, если это будет работать с обычными маркерами, но, кажется, работает правильно.
Чтобы удалить все метки с карты создать функции что-то вроде этого:
1.addMarker(местоположение): Эта функция используется, чтобы добавить маркер на карте
2.clearMarkers(): эта функция удаляет все маркеры с карты, а не из массива
3.setMapOnAll(карта): эта функция используется для добавления метки в массив
4.deleteMarkers(): эта функция удаляет все маркеры в массив путем удаления ссылок на них.
Это метод Google сами используют по крайней мере один образец:
Проверьте образец Google для полный пример кода:
https://developers.google.com/maps/documentation/javascript/examples/places-searchbox