2016-05-13 6 views

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)); 
+0

Perfect. Danke ! –