0

私はこれについて助けを探していましたが、私が見つけたものはすべて私を助けてくれませんでした.

移動オブジェクトの GPS 座標を「ライブ」で Google マップにプロットできるソリューションを見つけようとしています。

各オブジェクトの GPS 座標は、常に MySQL データベースに更新されます。更新された各座標を (おそらく数秒に 1 回) 読み取って、Google マップにマーカー座標を再プロットできるかどうかを知りたいです。 、ユーザーがページを更新する必要はありません。これを行うことができますか、それとも Google マップの 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 リクエストを呼び出す匿名関数を使用して a をセットアップするだけです。

次に、正しいマーカーを更新するだけです。

の線に沿った何か

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

もちろん、ajax に jQuery を使用する必要はありませんが、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 に答える