【问题标题】:Set google map zoom dynamically动态设置谷歌地图缩放
【发布时间】:2016-05-13 10:12:56
【问题描述】:

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

【问题讨论】:

    标签: javascript google-maps zooming polygon bounds


    【解决方案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));
    

    【讨论】:

    • 完美。谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多