有关Google地图,AJAX和一些后端数据的快速提问。
我如何创建使用我存储在数据库中的信息“实时”更新的谷歌地图?
我认为它在我脑海中起作用的方式是。
数据库从用户收集地理标记条目。 脚本(可能是php)检索最新记录。 Javascript + AJAX接收响应并将其绘制到Google地图上。
如何在输入记录时刷新和更新它?
答案 0 :(得分: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);
}
});
}