我在车辆跟踪系统工作,在这里我将 GPS 数据存储在 MySql 中。我需要做的是在谷歌地图中显示标记。每行数据表示每一秒的 GPS 数据。在这里我的问题是我无法在谷歌地图中每秒显示标记。
注意:我在 js 中使用计时器功能,这就是为什么每一秒都会分配一个变量,并且该变量将与 db 中的每一秒数据匹配。
这是我的代码:
<script type="text/javascript">
<?php $vehi = 1; ?>
window.setInterval(function initialize()
{
<?php
$sql= mysql_query("select * from maploca where id='$vehi'");
$sqlnm = mysql_num_rows($sql);
$sqlqry=mysql_fetch_object($sql);
?>
<?php $vehi++;?>
var json = [
{ "lat":<?php echo $sqlqry->latitude; ?>,
"lng":<?php echo $sqlqry->longitude; ?> }]
var latlng = new google.maps.LatLng(<?php echo $sqlqry->latitude;?>,<?php echo $sqlqry->longitude;?>);
var myOptions = {
zoom: 18,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var polylineCoordinates = [
new google.maps.LatLng(<?php echo $sqlqry->latitude;?>,<?php echo $sqlqry->longitude;?>)];
var polyline = new google.maps.Polyline({
path: polylineCoordinates,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
editable: true
});
polyline.setMap(map);
for (var i = 0, length = json.length; i < length; i++) {
var data = json[i],
latLng = new google.maps.LatLng(data.lat, data.lng);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
map: map
});
}
}, 1000);
</script>