Openlayers 地图定位到相应位置并缩放

说明:

在地图操作中,有个功能,需要点击一个点,将视图定位到点击点的位置,并放大。

解决方案:

1、可以有openlayers中可以有ol.View来控制,但是在更改时,会将地图初始化时设置的maxZoom,minZoom等覆盖掉,因此需要在设置新的view前,重新设置一次初始化时的值,避免重复覆盖。

    /**
     * @description 地图定位中心并缩放事件
     * @param {Map} _map 地图对象
     * @param {Feature} _feature 要定位的要素
     * @param {Number} _zoomLevel 缩放层级
     */
    this.zoomAndCenter = function (_map, _feature, _zoomLevel) {
        var my_view = new ol.View({
            center: ol.extent.getCenter(_feature.getGeometry().getExtent()),//格式:[x,y]
            zoom: _zoomLevel,
            minZoom: _map.encmap.getView().getMinZoom(),
            maxZoom: _map.encmap.getView().getMaxZoom()
        });
        _map.encmap.setView(my_view);
    };

2、单独设置中心和缩放,推荐!

let view = _map.encmap.getView();
view.setZoom(_zoomLevel);
view.setCenter(ol.extent.getCenter(_feature.getGeometry().getExtent()));

 

posted @ 2019-09-10 15:25  苍龙de链  阅读(6991)  评论(1编辑  收藏  举报