2016-02-12 256 views
0

根據this documentation of ol3 WIDTH,HEIGHT,BBOX和CRS(WMS版本< 1.3.0的SRS)的params選項將被動態設置。獲取從新ol.source.ImageWMS創建的動態參數

如何檢索此信息?在地圖座標中獲取圖像的BBOX。

更新: 當我在我儘管使用你的代碼中,我得到NaN值

 var lay = new ol.layer.Image({ 
      extent: transform, 
      source: new ol.source.ImageWMS({ 
       url: Layers.link, 
       params: {'LAYERS': Layers.name}, 
       serverType: 'geoserver', 
       imageLoadFunction: function(image, src) { 
        image.getImage().src = src; 
        // parse src for whatever you want to know 
        var bbox = src.match(/BBOX\=([^&^#]*)/)[1].split(',').map(Number); 
        console.log(bbox) 
       } 
      }) 
     }); 
+0

也許你的src在BBOX中也有NaN?用'console.log(src)'檢查。爲什麼你想首先了解所需的BBOX? – ahocevar

+0

我需要使用默認的epsg:3857在openlayers地圖中進行地理參考的圖層的邊界框,而不需要將其從一個座標系重新投影到另一個座標系。我用不同的crs提出請求,但openlayers用默認的epsg:3857翻譯它。我假設它會自動進行轉換 – mrapsogos

+0

另外,當我嘗試console.log(src)時出現此錯誤未捕獲的ReferenceError:scr未定義 – mrapsogos

回答

2

如果您需要此信息僅用於調試,你會發現它在瀏覽器的開發者工具通過查看這被髮送的WMS請求: Chrome Developer Tools Network pane

如果您需要在您的應用程序信息,您可以在ImageWMS源定義自定義imageLoadFunction檢查請求的URL:

new ol.source.ImageWMS({ 
    // ... 
    imageLoadFunction: function(image, src) { 
    image.getImage().src = src; 
    // parse src for whatever you want to know 
    var bbox = src.match(/BBOX\=([^&^#]*)/)[1].split(',').map(Number); 
    } 
}); 
+0

當我將這段代碼加入我的時候,bbox會返回NaN。檢查我的代碼更新問題 – mrapsogos