Обновить/перезагрузить карты: Google Maps API V2

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

http://128.233.104.33/passgui/editLeveledit.php

Чего я хочу -

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

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

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


person Pow    schedule 27.07.2011    source источник
comment
спасибо за щедрость, я не хочу вас беспокоить, но вы также должны проверить ответ, чтобы полностью принять его. если у вас есть другие вопросы по коду, просто дайте мне знать, с уважением ;-)   -  person Luca Filosofi    schedule 06.08.2011
comment
Спасибо за комментарий. Конечно, я сделаю это. Уже немного поздно, так как я занят другими проектами в эти дни. Сделаю это как можно скорее. Пожалуйста, не удаляйте его со своего сервера. Большое спасибо за твою помощь.   -  person Pow    schedule 06.08.2011
comment
не волнуйтесь, демо будет там! ;-)   -  person Luca Filosofi    schedule 07.08.2011


Ответы (3)


Вот подробная ссылка на Google Maps v2 API: http://econym.org.uk/gmap/

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

person Savageman    schedule 30.07.2011

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

person Gigamegs    schedule 30.07.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;

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

person Luca Filosofi    schedule 05.08.2011