谷歌地图上的getBounds()不准确吗?

时间:2016-05-25 19:11:27

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

编辑:我的问题实际上与此重复: google maps v3: center of bounds is different from center of the map

我尝试提取谷歌地图边界的中心点。后来我想通过这个中心点重新定位地图。然而,地图在南北方向略有变化。

我在这里遗漏了什么吗?在plunkr中,您可以看到地图在panTo() - 调用后如何移动,尽管它是从地图中检索到的确切中心。

https://plnkr.co/edit/zGy3nUShEFG7fxvKTqa9?p=preview

<!DOCTYPE html>
<html>
  <head>
    <title>Simple Map</title>
    <meta name="viewport" content="initial-scale=1.0">
    <meta charset="utf-8">
    <style>
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #map {
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>

var map;
function initMap() {
  var centerData = {lat: -34.397, lng: 150.644};
  map = new google.maps.Map(document.getElementById('map'), {
    center: centerData,
    zoom: 8
  });

  var initialCenterMarker = new google.maps.Marker({
    position: centerData,
    map: map,
    animation:google.maps.Animation.DROP
  });    


  setTimeout(function(){
    var bounds = map.getBounds();
    var myCenter=bounds.getCenter();

    setTimeout(function(){
      map.panTo(myCenter);
      var newCenterMarker = new google.maps.Marker({
        position: myCenter,
        map: map,
        animation:google.maps.Animation.DROP
      });    
    },2000);

  },1000);

}

    </script>
    <script src="https://maps.googleapis.com/maps/api/js?callback=initMap"
        async defer></script>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

我认为你应该使用map.getCenter而不是bounds.getCenter()

 map.getCenter();