【问题标题】:Angular OpenLayers - Zoom to box with boundsAngular OpenLayers - 缩放到有边界的框
【发布时间】:2015-09-26 08:09:32
【问题描述】:

我试图弄清楚如何将地图缩放到有边界的框,但找不到一个很好的例子。 我试过了

angular.extend($scope, {
        offset: 0,
        center: {
            lat: 30.0047,
            lon: 31.2586,
            bounds: [30.566461328125,
                     29.766565657014183,
                     31.950738671875005,
                     30.242264176913594]
        }
    });

如何将地图设置为缩放到边界框,而不需要将 4 个边界复杂地转换为(中心、缩放)?

【问题讨论】:

    标签: openlayers-3 angular-openlayers


    【解决方案1】:

    我很确定你想要

    map.getView().fit( 
        ol.proj.transformExtent([ x1, y1, x2, y2 ], 'EPSG:COORDS', 'EPSG:MAP'),
        map.getSize()
        );
    

    这是在您的地图存在之后,而不是在初始化时。

    http://openlayers.org/en/master/apidoc/ol.View.html#fit

    【讨论】:

    • 你忘记了map.getSize()。所以正确答案是map.getView().fit(ol.proj.transformExtent( [ x1, y1, x2, y2 ], 'EPSG:COORDS', 'EPSG:MAP'), map.getSize());。这适用于 OpenLayers v3.7 及更高版本,之前使用函数 fitExtent 代替 fit。只需用此更新您的答案。谢谢;)
    • 完成,感谢您接听。我也添加了文档链接
    猜你喜欢
    • 2018-11-07
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 2017-12-30
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多