84 Stimmen

Google Maps Api v3 - getBounds ist undefiniert

Ich wechsle gerade von v2 zu v3 google maps api und habe ein Problem mit gMap.getBounds() Funktion.

Ich muss die Grenzen meiner Karte nach der Initialisierung abrufen.

Hier ist mein Javascript-Code:

var gMap;
$(document).ready(

    function() {

        var latlng = new google.maps.LatLng(55.755327, 37.622166);
        var myOptions = {
            zoom: 12,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        gMap = new google.maps.Map(document.getElementById("GoogleMapControl"), myOptions);

        alert(gMap.getBounds());
    }
);

Jetzt wird mir also mitgeteilt, dass gMap.getBounds() ist undefiniert.

Ich habe versucht, getBounds Werte in Klick-Ereignis und es funktioniert gut für mich, aber ich kann nicht die gleichen Ergebnisse in Load Map-Ereignis erhalten.

Auch getBounds funktioniert gut, während das Dokument in Google Maps API v2 geladen wird, aber es schlägt in V3 fehl.

Könnten Sie mir bitte helfen, dieses Problem zu lösen?

1voto

jpoehnelt Punkte 2256

Hinzufügen einer Antwort für 2021.

Map.getBounds() kann anfangs ein undefiniertes Ergebnis liefern. Die bevorzugte Umgehung dieses Problems ist die Verwendung der bounds_changed Veranstaltung. Ein undefinierter Wert tritt in der Regel nur bei der Initialisierung der Karte auf und dann nie wieder.

const map = new google.maps.Map(document.getElementById("map"), {
  zoom: 12,
  center: new google.maps.LatLng(55.755327, 37.622166),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

map.addEventListener('bounds_changed', () => {
  console.log(map.getBounds());
});

https://developers.google.com/maps/documentation/javascript/reference/map#Map.bounds_changed

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X