每隔五秒从数据库中获取数据到Google Map

时间:2011-11-17 18:38:17

标签: google-maps javascript-events

我正在开发一个Google地图应用程序,纬度和经度来自外部设备,并且每隔五秒就存储到数据库中。

所以我必须每五秒查询一次数据库并获取数据库的新经度和经度并根据该数据移动标记。

怎么做?写一个ajax调用好吗?

2 个答案:

答案 0 :(得分:0)

以下是每隔几秒钟提取数据并重新标记标记的示例:http://www.robotwoods.com/dev/so_septa.html

这是它正在调用的PHP:

<?php
$route=(isset($_REQUEST['route']))?$_REQUEST['route']:23;
echo file_get_contents("http://www3.septa.org/transitview/bus_route_data/".$route);
?>

答案 1 :(得分:0)

我会以正确的方式引导你。我想我至少可以做到这一点:

a)你可以使用ajax定时查询你的服务器(检查像jquery这样的库),并在函数的回调函数中处理响应。

b)您的服务器将向服务器发送响应理想情况下,它将是表单的json响应

{
 id:<>,
 lat:
 lng:
}

c)遍历google maps api以查看如何删除标记等。您可以在关联数组中维护标记的哈希值,例如标记[key],其中key将是标记的标识符,if和when标记更新您可以使用此关联数组将标记删除为:

markers[id].setMap(null);

在回调中添加标记的代码:

var options = {
            position:  new google.maps.LatLng(lat, lng);,
            icon: image,
            zIndex: zIndex,

        };
options.map=map;
var marker = new google.maps.Marker(options); //construct marker
markers[key] = marker;   //store the marker in array