Die Google Maps API v3 unterstützt standardmäßig keine getBounds()
-Methode für die google.maps.Polygon-Klasse. Dies scheint seltsam angesichts der Tatsache, dass die google.maps.Map-Klasse eine fitBounds()
-Methode hat, die genau das ist, was Sie suchen .. Wenn Sie das Google Maps API mit jeder Art von Frequenz verwenden, dann sollte dies in Ihrer Tasche sein Tricks ::
getBounds()
Methode zur google.maps.Polygon Klasse
google.maps.Polygon.prototype.getBounds = function() {
var bounds = new google.maps.LatLngBounds();
var paths = this.getPaths();
var path;
for (var i = 0; i < paths.getLength(); i++) {
path = paths.getAt(i);
for (var ii = 0; ii < path.getLength(); ii++) {
bounds.extend(path.getAt(ii));
}
}
return bounds;
}
diese Methode auf der Hand zu haben, macht es sehr einfach, einen Polygon auf der Karte zu zentrieren und passen.
Hinweis: Wenn Sie nicht mit getAt()
und getLength()
vertraut sind, ist das in Ordnung, sie sind Methoden einzigartig für die google.maps.MVCArray Klasse. Wenn Sie die Methode getPaths()
eines Polygons aufrufen, gibt es Ihr LatLng-Array als veränderbares MVCArray von LatLng's zurück. Sie können hier über MVCArrays - Google Maps v3 API MVCArray class - fertig sein.
Weitergehen. Hier ist das Framework, Sie müssen die oben beschriebene Prototyp-Methode irgendwo vor diesem nächsten Code implementieren.
var map = new google.maps.Map(container, opts); // I'll spare the details on this
var coords = [
new google.maps.LatLng(25.774252, -80.190262)
,new google.maps.LatLng(18.466465, -66.118292)
,new google.maps.LatLng(32.321384, -64.75737)
,new google.maps.LatLng(25.774252, -80.190262)
];
var myPolygon = new google.maps.Polygon({
paths: coords
,strokeColor: "#A80000"
,strokeOpacity: 0.8
,strokeWeight: 1
,fillColor: "#0b2a32"
,fillOpacity: 0.12
});
Mit dem Bühnenbild, alles, was Sie auf dieser (oder jeder) Polygon zu tun haben würden, zum Zentrum und vergrößern ist ::
map.fitBounds(myPolygon.getBounds());
Kurz und gut. Ich hoffe, das hilft.
-Kevin James
Dies ist nicht mehr wahr! Maps v3 hat die getBounds() -Methode abgeworfen. – Benjamin
Überprüfen Sie diesen Link, um das Polygon zu erweitern, um Grenzen zu erhalten (Google Map V3), http://tutorialspots.com/google-maps-javascript-api-v3-method-polygon-getbounds-515.html – shyammtp