2017-10-18 51 views
0

對於我的地圖應用程序,我想在不同的函數中使用ol.View.zoom-屬性以及ol.View.resolution屬性。根據Open Layers 4 API文檔,如果給出分辨率,縮放屬性將被忽略。 所以我想申請getZoomForResolution,這是這裏的API中記錄:在Open Layers 4中定義了getZoomForResolution嗎?如果是這樣,我如何才能使它工作?

https://openlayers.org/en/latest/apidoc/ol.View.html#getZoomForResolution

這是一些測試代碼我使用:

var map, view; 
    //initial definition of the map 
    function initializeMap(){ 
     //define osm source and layer 
     var osmSource = new ol.source.OSM(); 
     var osmLayer = new ol.layer.Tile({source: osmSource}); 
     //define new map object 
     map = new ol.Map({ 
      target:'map', 
      view: new ol.View({ 
       center: ol.proj.fromLonLat([9.83276, 52.36554]), 
       resolution:300, // is required in some function 
       zoom:10 //ignored as expected according to API, also required in another function 
      }), 
      layers:[osmLayer] 
     }); 
     var currentResolution = map.getView().getResolution(); // returns 300 as expected 
     console.log(map.getView().getZoomForResolution(currentResolution)); 
    } 

不幸的是,我只收到錯誤「 map.getView()。getZoomForResolution不是一個函數「。我也讀過this的帖子,但是它指的是OL 3,並沒有給出證據。

所以,我的問題是:是否getZoomForResolution函數不再實現?或者我嘗試訪問它的方式有錯誤嗎?

回答

0

這裏工作得很好。 https://codepen.io/anon/pen/vePjxa?editors=1011

var osmSource = new ol.source.OSM(); 
    var osmLayer = new ol.layer.Tile({source: osmSource}); 
    //define new map object 
    map = new ol.Map({ 
     target:'map', 
     view: new ol.View({ 
      center: ol.proj.fromLonLat([9.83276, 52.36554]), 
      resolution:300, // is required in some function 
      zoom:10 //ignored as expected according to API, also required in another function 
     }), 
     layers:[osmLayer] 
    }); 
    var currentResolution = map.getView().getResolution(); // returns 300 as expected 
    console.log(map.getView().getZoomForResolution(currentResolution)); 

你有沒有工作的沙箱?

+0

啊,應該早一點嘗試過 - 在不同的環境下工作。謝謝! – Tooowanda

相關問題