Je nach Höhe der Polygonformen (Verwaltungsgrenzen) kann eine Zoomstufe definiert werden? Dieses Polygon wird vollständig im div der Karte angezeigt.Set google map zoom dynamisch
-1
A
Antwort
1
Es gibt eine map.fitBounds(my_bounds)
-Funktion, die das Ansichtsfenster so einstellt, dass es die angegebenen Grenzen enthält. Es würde die Karte auf die höchstmögliche Zoomstufe setzen, in der Sie die gesamten Grenzen sehen können.
Dafür müssen Sie die Grenzen Ihres Polygons bestimmen. Wenn Sie google.maps.Polygon
verwenden, um Ihre Polygone anzuzeigen, überprüfen Sie this solution.
In diesem Fall würden Sie haben:
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;
}
...
map.fitBounds(my_polygon.getBounds());
Wenn Sie Data layer
verwenden Polygone angezeigt werden, this SO answer überprüfen. Es bietet ein Beispiel, wie Grenzen von Data.Feature
berechnet werden, wenn es ein Polygon ist.
Wenn Sie einige andere Mittel haben, die Grenzen des Polygons zu bestimmen, dann benutzen Sie einfach diese:
map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(SouthWestCornerLat, SouthWestCornerLng), new google.maps.LatLng(NorthEastCornerLat, NorthEastCornerLng));
Perfect. Danke ! –