2016-05-13 491 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

完美。謝謝 ! –