2016-05-13 251 views

回答

1

有一个map.fitBounds(my_bounds)函数,它将视口设置为包含给定边界。它会将地图设置为可能的最高缩放级别,您可以在其中看到整个边界。

为此,您需要确定多边形的边界。如果使用google.maps.Polygon显示多边形,请检查this solution

在这种情况下,你会:

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()); 

如果使用Data layer显示多边形,请this SO answer。它提供了如何计算Data.Feature的边界(如果它是多边形)的示例。

如果你有确定多边形的边界的一些其他手段,就用这样的:

map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(SouthWestCornerLat, SouthWestCornerLng), new google.maps.LatLng(NorthEastCornerLat, NorthEastCornerLng)); 
+0

完美。谢谢 ! –