【问题标题】: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);
}
});
}