【问题标题】:Google Maps, SQL, XML, Ajax oh my!谷歌地图、SQL、XML、Ajax 哦,天哪!
【发布时间】:2010-02-10 18:57:34
【问题描述】:

关于 Google 地图、AJAX 和一些后端数据的快速问题。

我将如何使用我存储在数据库中的信息创建“实时”更新的谷歌地图?

我认为它在我脑海中运作的方式是。

数据库从用户那里收集带有地理标签的条目。 一个脚本(可能是 php)检索最新记录。 Javascript + AJAX 获取响应并将其绘制到谷歌地图上。

如何在输入记录时刷新和更新?

【问题讨论】:

    标签: javascript sql ajax google-maps


    【解决方案1】:

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

    在客户端,您应该使用普通或长轮询方式向服务器端脚本发起 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);
           }
        });
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    相关资源
    最近更新 更多