2010-02-10 23 views
3

有关Google地图,AJAX和一些后端数据的快速问题。谷歌地图,SQL,XML,Ajax哦!我的!

我该如何去创建谷歌地图,以“实时”方式更新我存储在数据库中的信息?

我看到它在我脑海中工作的方式是。

数据库收集来自用户的地理标记条目。 脚本(可能是php)检索最新记录。 Javascript + AJAX将回应并绘制到Google地图上。

如何在进入记录时更新和更新?

回答

3

您需要服务器上的一个脚本,该脚本给出时间戳记将检查在该时间戳记之后是否有新记录插入到数据库中。如果是,它应该返回最新条目的回复。

在客户端,您应该使用普通轮询或长轮询以及最后一次更新的timestamp参数向服务器端脚本发起AJAX请求。

当您的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); 
     } 
    }); 
} 
+1

是有道理的,感谢丹!我可能会用你的方法调整下面的代码:http://mapki.com/wiki/AJAX_with_PHP_and_MySQL – st4ck0v3rfl0w