2016-05-25 15 views
0

edit: Meine Frage ist tatsächlich ein Duplikat dieser: google maps v3: center of bounds is different from center of the mapUngenaue getBounds() auf Google Maps?

Ich versuche, den Mittelpunkt der Grenzen eines Google-Map zu extrahieren. Später möchte ich die Karte um diesen Mittelpunkt neu positionieren. Allerdings verschiebt sich die Karte leicht in Nord-Süd-Richtung.

Fehle ich hier etwas? Im Plunkr können Sie sehen, wie sich die Karte nach dem Aufruf von panTo() - Call verschiebt, obwohl es genau das Zentrum ist, das sich von der Karte zurückgezogen hat.

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> 

Antwort

1

Ich glaube, Sie map.getCenter statt bounds.getCenter()

map.getCenter(); 
verwenden sollten