2016-02-12 252 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