0

我一直在寻求帮助,但我发现的一切都没有帮助我。

我正在尝试找到一种解决方案,让我可以在 Google 地图上“实时”绘制移动物体的 GPS 坐标。

每个对象的 GPS 坐标将不断更新到 MySQL 数据库中,我想知道是否可以读取每个更新的坐标,可能每隔几秒钟读取一次,并在谷歌地图上重新绘制标记坐标,而无需用户刷新页面。可以这样做吗,还是使用 Google Maps 的 API 太复杂了

提前致谢。

编辑 > 我的当前代码。

<?php
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM `gps`";
$result=mysql_query($sql);
while($row = mysql_fetch_array($result))
  {
  $_SESSION['x']=$row['x'];
  $_SESSION['y']=$row['y'];
  $_SESSION['driver']=$row['driver'];
  $_SESSION['callsign']=$row['username'];
  }?>
  <head>
  <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map-canvas { height: 100% }
    </style>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Live Viewer</title>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script>
function initialize() {
  var myLatlng = new google.maps.LatLng(<?php echo $_SESSION['x'].",".$_SESSION['y']; ?>);
  var mapOptions = {
    zoom: 11,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: '<?php echo $_SESSION{'']; ?>'
  });
}

function movemarker( map, marker ) {

    marker.setPosition( myLatlng );
    map.panTo( myLatlng );

};

google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
4

2 回答 2

1

只需设置一个setInterval()匿名函数,该函数调用一个检索坐标的 Ajax 请求。

然后只需更新正确的标记即可。

类似的东西

setInterval(function(){
    jQuery.getJSON('/getmarker.php?id=1234', function(data){
        updateMarker(marker, data.lat, data.lng);
    });
}, 5000);

当然,你不必为 ajax 的东西使用 jQuery,但它确实使它更容易......

于 2013-05-27T15:25:03.967 回答
0

这与 Google Maps API 本身无关。您需要做的是在您的站点上创建一个“类似 API”的端点,该端点返回更新后的坐标,例如作为 JSON 字符串,然后setTimeout在客户端使用 Ajax/XHR 频繁检索此端点的 URL . 然后,您可以解析它并将其应用于 Google 地图实例。

如何实际开发它完全取决于您的前端和后端选择,您使用的 JS 库等等。

于 2013-05-27T15:11:21.927 回答