【问题标题】:Getting gps Lat, Long values from DataBase and Draw marker on map?从数据库获取gps Lat,Long值并在地图上绘制标记?
【发布时间】:2014-05-06 06:58:22
【问题描述】:

我正在开发一个跟踪系统。 我从数据库中获取 gps lat long 值,然后在地图上显示标记, 并在 30 秒后刷新页面以检查服务器上可能更新的 b 值。 我的代码如下。 可能会映射显示页面。

  <!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);
    ?>

但它不能正常工作。

【问题讨论】:

  • 浏览器控制台有错误吗?
  • 您所说的“工作不正常”是什么意思?
  • @SajithaRathnayake 我的意思是,当数据库表中的值不超过一个标记时。
  • @Rorschach 否,当数据库表中的值不超过一个标记时
  • 我明白了,那么你必须制作 latlongs 循环来获取地图上的所有标记

标签: javascript php google-maps google-maps-api-3 gps


【解决方案1】:

要在地图中显示多个,您必须为 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>

【讨论】:

    【解决方案2】:

    您可以通过您的 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2011-12-17
      相关资源
      最近更新 更多