Openlayers 3 获取从新ol.source.ImageWMS创建的动态参数

Openlayers 3 获取从新ol.source.ImageWMS创建的动态参数,openlayers-3,Openlayers 3,根据宽度、高度的参数选项,将动态设置BBOX和CRS(WMS版本

根据宽度、高度的参数选项,将动态设置BBOX和CRS(WMS版本<1.3.0的SRS)

如何检索这些信息?例如,在地图坐标中获取图像的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)
                }
            })
        });

如果仅在调试时需要此信息,您可以通过查看发送的WMS请求,在浏览器的开发人员工具中找到此信息:


如果应用程序中需要此信息,可以在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);
  }
});

当我将此代码添加到我的代码中时,bbox返回NaN。检查我的更新问题的代码也许你的src在BBOX中也有一个NaN?检查控制台日志(src)。为什么您首先要知道所请求的BBOX?我需要获取openlayers地图中地理参考的图层的边界框,默认epsg:3857,而不需要将其从一个坐标系重新投影到另一个坐标系。我使用不同的crs发出请求,但openlayers使用默认的epsg:3857进行转换。我假设它会自动进行转换,所以当我尝试console.log(src)时,我会在未捕获引用错误的情况下得到此错误:scr未定义检查拼写错误-src vs.scr.Cross-posted as