Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建谷歌地图标记自动更新?_Javascript_Asp.net Mvc_Google Maps - Fatal编程技术网

Javascript 如何创建谷歌地图标记自动更新?

Javascript 如何创建谷歌地图标记自动更新?,javascript,asp.net-mvc,google-maps,Javascript,Asp.net Mvc,Google Maps,我正在做mvc项目,里面包括谷歌地图 我的系统允许用户向系统发送tweet,并将其保存在数据库中,然后在地图上显示tweet 我需要做的是“当系统获得新数据时自动更新地图上的标记” 有什么建议吗?非常感谢^ ^您需要在服务器上安装一个脚本,该脚本将在给定时间戳后检查数据库中是否插入了新记录。如果是,脚本将返回一个包含新信息的响应 然后,您应该使用或和上次更新的timestamp参数向服务器端脚本发起AJAX请求 当AJAX请求从服务器接收到新信息时,只需将新标记添加到地图中即可。然后使用更新的时

我正在做mvc项目,里面包括谷歌地图

我的系统允许用户向系统发送tweet,并将其保存在数据库中,然后在地图上显示tweet

我需要做的是“当系统获得新数据时自动更新地图上的标记”


有什么建议吗?非常感谢^ ^

您需要在服务器上安装一个脚本,该脚本将在给定时间戳后检查数据库中是否插入了新记录。如果是,脚本将返回一个包含新信息的响应

然后,您应该使用或和上次更新的timestamp参数向服务器端脚本发起AJAX请求

当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);
    }
  });
}