Openlayers 3 获取从新ol.source.ImageWMS创建的动态参数
根据宽度、高度的参数选项,将动态设置BBOX和CRS(WMS版本<1.3.0的SRS) 如何检索这些信息?例如,在地图坐标中获取图像的BBOX 更新: 当我使用你的代码时,我得到一个NaN值Openlayers 3 获取从新ol.source.ImageWMS创建的动态参数,openlayers-3,Openlayers 3,根据宽度、高度的参数选项,将动态设置BBOX和CRS(WMS版本
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