我正在开发一个谷歌地图应用程序,纬度和经度每五秒钟从外部设备传入并存储到数据库中。
所以我必须每五秒查询一次数据库并获得数据库的新经纬度并据此移动标记
怎么做?写ajax调用好吗?
下面是每隔几秒提取数据并重新绘制标记的示例: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);
?>
我会以正确的方式引导你。我想我至少可以这样做:
a)你可以有一个函数,使用ajax每隔一段时间查询你的服务器(查看像jquery这样的库),并在函数的回调函数中处理响应。
b)你的服务器将发送一个响应到服务器理想情况下,它将是json响应的形式
{
id:<>,
lat:
lng:
}
c)通过谷歌地图API来了解如何删除标记等,您可以在关联数组中维护标记的哈希值,如标记[key],其中键将是标记的标识符,如果和当标记更新时,您可以使用此关联数组来删除标记:
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