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()));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM