Карты Google, SQL, XML, Ajax, боже мой! - PullRequest
3 голосов
/ 10 февраля 2010

Быстрый вопрос, касающийся Google Maps, AJAX и некоторых внутренних данных.

Как мне создать карту Google, которая обновляется в режиме "реального времени" с информацией, которую я храню в базе данных?

Я вижу, как это работает в моей голове.

База данных собирает записи с геотегами от пользователей. Скрипт (вероятно, php) извлекает последнюю запись. Javascript + AJAX принимает ответ и помещает его в Google Maps.

Как заставить его обновляться и обновляться при вводе записей?

1 Ответ

3 голосов
/ 10 февраля 2010

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

На стороне клиента следует инициировать запрос AJAX для сценария на стороне сервера, используя обычный или длинный опрос, с параметром timestampпоследнее обновление.

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

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

var lastUpdate = '2000/01/01 00:00:00';

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

          // 1. Check if jsonData is empty. If not 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. Move the markers on Google Map.

          // Relaunch the autoUpdate() function in 5 seconds.
          setTimeout(autoUpdate, 5000);
       }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...