动态设置google地图缩放
Set google map zoom dynamically
是否可以根据多边形形状(行政边界)的高度定义缩放级别?
该多边形将完全显示在地图的 div.
中
有一个 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));
是否可以根据多边形形状(行政边界)的高度定义缩放级别? 该多边形将完全显示在地图的 div.
中有一个 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));