Обновить / Обновить карты: Google maps API V2 - PullRequest
6 голосов
/ 28 июля 2011

Я показываю маркер на моей карте Google, получая некоторые точки из базы данных.Здесь я могу добавить несколько новых точек или удалить некоторые точки в моей базе данных.Но моя проблема в том, что когда новые точки добавляются в базу данных, карта не показывает обновленные точки на карте, поскольку она не обновляется.Я не хочу обновлять всю веб-страницу.Вот ссылка на мою работу -

http://128.233.104.33/passgui/editLeveledit.php

То, что я хочу, -

- чтобы показать вновь добавленные данные на карте, когда я нажимаю добавить новыйPOI

- Если я удаляю один POI, его следует также удалить с карты после нажатия кнопки удаления POI из таблицы уровней.

Может ли кто-нибудь помочь мне, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 30 июля 2011

Вот обширный справочник по API Карт Google v2: http://econym.org.uk/gmap/

Посмотрите на " Часть 11 " из "Основы". Точки удаляются / добавляются при нажатии на кнопки. Новые координаты извлекаются с помощью Ajax, но я уверен, что вы можете управлять другим способом. : -)

0 голосов
/ 05 августа 2011

ДЕМО: http://so.devilmaycode.it/refresh-reload-maps-google-maps-api-v2/


Все, что вам нужно, находится внутри источника, посмотрите и дайте мне знать.

В основном демонстрационная версия использует библиотеку markermanager.js, как и вы сейчас, она объясняет, как ссылаться на на новые добавленные маркеры и как insert и remove их без обновления текущая карта / страница;

Процесс прост: каждый раз, когда marker добавляется на карту с помощью addMarkers, он создает marker.object, свойство, которое мы ищем, это marker.no в форме marker#, где # - инкрементное число, поэтому может быть любой цифрой.

Теперь настоящая хитрость заключается в создании массива global, в котором мы сохраняем все созданные маркеры для легкого доступа.

Таким образом, мы можем достичь и удалить каждый маркер, используя функцию removeMarker следующим образом: removeMarker(global_marker_array[marker_id]);, где marker_id - это marker.no;

я думаю, что этот подход действительно хорош, потому что вам не нужно знать lat и long для получения маркеров во второй раз.

0 голосов
/ 30 июля 2011

Хорошей стратегией было бы сохранить весь ваш текущий маркер в массиве javascript.Сначала, если вы удаляете или добавляете новый маркер, вы удаляете или добавляете его в свой массив, а затем удаляете каждый маркер на карте, затем очищаете карту, а затем вы хотите перебрать свой массив и перерисовать каждый маркер, если удалите или добавите onClickсобытие сработало.

...