【问题标题】:how to stay my last position in map after every 1 min load每加载 1 分钟后如何保持我在地图中的最后一个位置
【发布时间】:2016-09-16 07:09:39
【问题描述】:

当我每 1 分钟加载一次地图时如何跟踪地图上的当前位置,但现在每 1 分钟后地图位置重定向到默认位置。

这是我的代码。我每 1 分钟调用一次加载函数,并从 mapajax1.php 文件中获取数据。我想保持我在地图上的最后一个位置,因为我跟踪驱动程序

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script>
    <script type="text/javascript">
     function load() {

          var map = new google.maps.Map(document.getElementById("map"), {
            center: new google.maps.LatLng("<?php echo $lat;?>", "<?php echo $lng;?>"),
            zoom: 5,
            mapTypeId: 'roadmap'
          });
          var infoWindow = new google.maps.InfoWindow;

          // Change this depending on the name of your PHP file
          downloadUrl("mapajax1.php", function(data) {
            var xml = data.responseXML;


            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
              var name = markers[i].getAttribute("name");
              var email = markers[i].getAttribute("email");
              var phone = markers[i].getAttribute("phone");
              var status = markers[i].getAttribute("status");
              var type = markers[i].getAttribute("type");
              var point = new google.maps.LatLng(
                  parseFloat(markers[i].getAttribute("lat")),
                  parseFloat(markers[i].getAttribute("lng")));
              var html = "<b>" + name + "</b> <br/>" + email+ "</b> <br/>" + phone+ "</b> <br/>" + status;
              var icon = customIcons[type] || {};
              var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: icon.icon
              });
              bindInfoWindow(marker, map, infoWindow, html);
            }
          });
        }

     setInterval(function(){ 
                load()    
            }, 60000);
    </script>

【问题讨论】:

  • 在调用load()函数之前需要保存地图上的最后一个位置。因此,您的代码每次都会返回到初始位置
  • 能否请您分享任何链接以保存最后一个位置

标签: javascript php google-maps


【解决方案1】:

在调用 load() 函数之前,您需要保存地图上的最后一个位置。因此,您的代码每次都会返回到初始位置。

这里是一个示例代码,地图每 5 秒加载一次,地图上的最后一个位置。

jsfiddle link

var lat = -27.4; //<?php echo $lat;?>
var lng = 153.023; //<?php echo $lng;?>

function load() {

  var map = new google.maps.Map(document.getElementById("map"), {
    center: new google.maps.LatLng(lat, lng),
    zoom: 5,
    mapTypeId: 'roadmap'
  });
  //....... rest of code
  map.addListener('center_changed', function() {
    lat = map.getCenter().lat();
    lng = map.getCenter().lng();
  });
}

setInterval(function() {
  load()
}, 5000);

创建地图时,添加一个监听器来更新lat和lng

  map.addListener('center_changed', function() {
    lat = map.getCenter().lat();
    lng = map.getCenter().lng();
  });

【讨论】:

    猜你喜欢
    • 2019-07-25
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2018-12-15
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多