2014-05-06 168 views
1

我正在研究跟蹤系統。 我從數據庫中獲得gps緯度長的值,然後在地圖上顯示標記 並在30秒後刷新頁面以檢查服務器上可能更新的b值。 我的代碼如下。 可能會映射顯示頁面。從地圖上的DataBase和Draw標記獲取gps Lat,Long值?

<!DOCTYPE html /> 
    <html> 
    <head> 
    <script src="http://code.jquery.com/jquery-1.11.0.min.js" type="text/javascript">     </script> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> 
    <title>GoogleMaps</title> 
<script> 

function initialize(lang,lat) { 
    var myLatlng = new google.maps.LatLng(lang,lat); 
var myOptions = { 
     zoom: 8, 
     center: myLatlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var contentString = 'Location NAme'; 
    var infowindow = new google.maps.InfoWindow({ 
     content: contentString 
    }); 

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     title: 'Location NAme' 
    }); 
} 


function show_map(){ 
    $.ajax({ 
     type: "POST", 
      url: "some.php" 
     }) 
     .done(function(msg) { 
      alert(msg); 
      var obj = jQuery.parseJSON(msg); 

      initialize(obj.lang,obj.lat); 

    }); 

} 

setInterval(show_map,30000); 
</script> 

</head> 
<body onLoad="show_map()"> 

    <div id="map_canvas" style="width: 100%; height: 100%;"> 

</body> 
</html> 

我的PHP頁面:

<?php 
      mysql_connect("localhost","root","")or die("error in connection"); 
      mysql_select_db("gpsvalues"); 
      $result = mysql_query("select * from gps"); 
     $row = mysql_fetch_assoc($result); 
     $arr=array(); 
     $arr = $row; 
     echo json_encode($arr); 
    ?> 

但它不是工作正常。

+0

在瀏覽器控制檯的任何錯誤? – Rorschach

+0

你的意思是'不能正常工作'? –

+0

@SajithaRathnayake我的意思是,當更多的數據庫表中的值不顯示更多,然後一個標記。 – Nadeem

回答

0

要在地圖中顯示多個,您必須爲lat long創建數組。

var locations; 
     locations=[ 
      [lat1,long1], 
      [lat2,long2], 
      [lat3,long3], 
      [lat4,long4], 
     ]; 

所以,你的代碼應該改變像

<script> 
     var locations; 
     locations=[ 
      [lat1,long1], 
      [lat2,long2], 
      [lat3,long3], 
      [lat4,long4], 
     ]; 
    var map = new google.maps.Map(document.getElementById('maparea'), { 
     zoom: 14, 
     center: new google.maps.LatLng(6.778659644259302, 79.99540328979492), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    var infowindow = new google.maps.InfoWindow(); 

    var marker, i; 

    for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][0], locations[i][1]), 
     map: map 
     }); 

     google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
      infowindow.setContent(locations[i][0]); 
      infowindow.open(map, marker); 
     } 
     })(marker, i)); 
    } 
</script> 
0

你可以通過你的PHP在GPS中的每一行調用add標記功能..

<script> 
    <?php 
      mysql_connect("localhost","root","")or die("error in connection"); 
      mysql_select_db("gpsvalues"); 
      $result = mysql_query("select * from gps"); 
      while($row = mysql_fetch_assoc($result)) 
      { 
       echo "addmarker($row[lat], $row[lng]);"; //whatever way you have stored in your database 
      } 
    ?> 


      function addmarker(lat, lng) { 
       var myLatlng = new google.maps.LatLng(lat,lng); 
       var marker = new google.maps.Marker({ 
       position: myLatlng, 
       map: map, 
       title: 'Location NAme' 
      }); 
      marker.setMap(map); 
      } 
    </script> 
相關問題