简体   繁体   English

从地图上的数据库和绘制标记中获取gps纬度,经度值?

[英]Getting gps Lat, Long values from DataBase and Draw marker on map?

I am working on a tracking system. 我正在跟踪系统上。 I get gps lat long values from database and then show marker on map, and refresh a page after 30 seconds to check may b values updated on server. 我从数据库获取gps lat long值,然后在地图上显示标记,并在30秒后刷新页面以检查服务器上b值是否已更新。 my code is given below. 我的代码如下。 may map show page. 可以映射显示页面。

  <!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>

my PHP page is: 我的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);
    ?>

But it is not works fine. 但这不是很好。

For show multiple in a map you have to create array for lat long. 为了在地图上显示多个,您必须创建纬度较长的数组。

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

So your code should be change like 所以你的代码应该像

<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>

You can call the add marker function through your php for every row in the gps.. 您可以通过php为gps中的每一行调用添加标记功能。

 <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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 <script>Not Getting Lat and Long from the given map address jquery or javascript - <script>Not Getting Lat and Long from the given map address jquery or javascript 如何获取 javascript 中每一行的所有坐标? 因为我想使用 lat 和 long 在地图上绘制标记 - How can i fetch all the coordinates for every row of in javascript ? as i would like to use lat and long to draw marker on map 固定标记在中心并拖动地图以获得经纬度 - Fixed marker in center and drag map to get lat,long 通过纬度/经度和间距在Google Map StreetViewPanorama上放置标记或overlayview - Placing marker or overlayview on Google Map StreetViewPanorama via lat/long and pitch 从谷歌标记获取Lat / Lng - Getting Lat/Lng from Google marker 从数据库加载多个纬度/经度点到谷歌地图标记的好方法? - Good way to load multiple lat/long points from a database into google map markers? 在Javascript中从经纬度获取城市名称 - Getting the cityname from lat/long in Javascript 如何从数据库 Firestore 存储经纬度 - How to store lat and long from database Firestore 角谷歌地图在组件加载时变得不确定 - Angular google map getting undefined lat long on components load 获取在 leaflet map 上使用 mapbox 搜索的地址的纬度/经度 - Getting the lat/long of the address searched with mapbox on the leaflet map
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM