Antwort

69

Google Maps API v3 bietet ein LatLngBounds Objekt, zu dem Sie mehrere LatLng Objekte hinzufügen können. Sie können diese dann zu Map.fitBounds() Funktion übergeben, wie hier beschrieben:

Teil Beispiel

var latlng = [ 
    new google.maps.LatLng(1.23, 4.56), 
    new google.maps.LatLng(7.89, 1.01), 
    // ... 
]; 
var latlngbounds = new google.maps.LatLngBounds(); 
for (var i = 0; i < latlng.length; i++) { 
    latlngbounds.extend(latlng[i]); 
} 
map.fitBounds(latlngbounds); 
+1

BTW: Wenn Sie mit einem Array von Markern arbeiten, können Sie die Markerposition mit der 'getPosition()' Methode erhalten. –

20

Sie fügen Marker zur Karte google durch ein marker Objekt für jeden Ihrer Breite/Länge Paare Instanziierung:

var marker = new google.maps.Marker({ 
    position: currentLatLng, 
    map: map, 
    title:"Title!" 
}); 

Die map Option auf den Marker constructer wird den neuen Markt Objekt mit Ihrer Karte zuzuordnen.

Um Ihre Karte zu vergrößern, um Ihre neuen Markierungen einzuschließen, verwenden Sie die fitBounds Methode auf dem Objekt map. fitBounds verwendet ein Objekt latLngBounds als Parameter. Dieses Objekt verfügt über eine handliche extend Methode, die die Grenzen anpassen, um eine neue Breite/Länge zu enthalten. Sie müssen also nur alle Ihre Punkte durchblättern und extendieren auf einem einzigen latLngBounds-Objekt. Dadurch werden die Grenzen so erweitert, dass sie alle Ihre Marker enthalten. Sobald Sie dies getan haben, übergeben Sie dieses Objekt in die fitBounds Methode auf der map und es wird zoomen, um alle Ihre neuen Marker anzuzeigen.

+0

obwohl Sie die richtige Antwort zur Verfügung gestellt * zuerst * .. wie üblich gingen die meisten Punkte zu der anderen * selben * Antwort, die tatsächlich einen Beispielcode hatte .. – abbood

+1

@abbood Danke für den Tipp;) – RedBlueThing

Verwandte Themen