繁体   English   中英

动态设置谷歌地图缩放

[英]Set google map zoom dynamically

是否可以根据多边形形状(管理边界)的高度定义缩放级别? 这个多边形将完全显示在地图的 div 中。

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

为此,您需要确定多边形的边界。 如果您使用google.maps.Polygon显示多边形,请查看此解决方案

在这种情况下,您将拥有:

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显示多边形,请查看此 SO 答案 它提供了有关如何计算Data.Feature边界(如果它是多边形)的Data.Feature

如果您有其他确定多边形边界的方法,则只需使用以下方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM