Как создать автообновление маркера GoogleMap? - PullRequest
3 голосов
/ 20 июля 2010

Я работаю над проектом MVC, который включает в себя карту Google внутри

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

что мне нужно сделать, это «Автоматическое обновление маркера на карте, когда система получит новые данные»

есть предложения? большое спасибо ^^

1 Ответ

4 голосов
/ 20 июля 2010

Вам нужен скрипт на сервере, который с учетом временной отметки проверит, были ли новые записи вставлены в базу данных после этой временной отметки.Если да, скрипт должен вернуть ответ с новой информацией.

Затем вы должны инициировать AJAX-запрос к серверному скрипту, используя либо normal , либо long polling , с параметром timestamp последнего обновления.

Когда ваш AJAX-запрос получает новую информацию от сервера, вы должны просто добавить новые маркеры на карту.Затем инициируйте новый запрос AJAX с обновленным параметром метки времени.

Псевдо-пример с использованием jQuery:

var lastUpdate = ''; // You need to decide what the server should return
                     //  when you load the map the first time.

function autoUpdate() {
  $.ajax({
    type: "GET",
    url: "check_updates.aspx?last_update=" + lastUpdate,
    dataType: 'json',
    success: function(jsonData) {

      // 1. Check if jsonData is empty. If empty skip to 4.
      //    Else we received some fresh data.
      //
      // 2. Update lastUpdate from the jsonData with the timestamp from 
      //    the server. Don't use JavaScript to update the timestamp, 
      //    because the time on the client and on the server will 
      //    never be exactly in sync.
      //
      // 3. Add new markers on Google Map.
      //    
      // 4. Relaunch the autoUpdate() function in 5 seconds.
      setTimeout(autoUpdate, 5000);
    }
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...