1
我尝试使用以下代码从wms服务器获取地图图像。处理来自WMS服务器的EXCEPTION响应
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Playing with fis broker berlin</title>
<link rel="stylesheet" href="../../libs/ol3/css/ol.css"/>
<link rel="stylesheet" href="../../css/samples.css"/>
</head>
<body>
<div id="map" class="map"></div>
<script src="../../libs/ol3/js/ol.js"></script>
<script>
var imageSource = new ol.source.ImageWMS({
url: 'http://fbinter.stadt-berlin.de/fb/wms/senstadt/k_dtk50',
params: {
'LAYERS': '0',
'REQUEST': 'GetMap',
'STYLES': ['default'],
'SRS': 'EPSG:4326',
'BBOX': [13.079, 52.3284, 13.7701, 52.6877],
'WIDTH': '256',
'HEIGT': '256',
'FORMAT': 'jpeg'
}
})
imageSource.on('imageloaderror', function (event) {
var imageState = event.target.getState()
var request = event.image.n
console.log('imageloaderror, state = ' + imageState)
console.log('request: ' + request)
})
var imageLayer = new ol.layer.Image({
opacity: 0,
source: imageSource
})
var view = new ol.View({
center: [13.4297269, 52.4594867],
zoom: 10
})
var map = new ol.Map({
target: 'map',
layers: [imageLayer],
view: view
})
</script>
</body>
</html>
OL3无法显示图像,因为WMS发送背上一个xml异常报告,而不是JPEG数据意味着 CRS是不允许的:EPSG:3857。 在Java控制台,我们看到消息 资源解释为图像,但使用MIME类型text/xml的转移...
我明白,图像源设置不正确。这需要我进一步调查。 但我的问题是: 我怎样才能看到消息crs是不允许的:EPSG:3857和ol脚本从wms服务器的任何其他错误消息?
感谢bartvde,但我不想做xhr自己,因为这应该由ol完成,并且完成。但在wms服务器出现错误的情况下,我想提出这个问题。虽然我发现通过* imageloaderror *的钩子意识到错误,但是我错过了对* Resource解释为Image的信息的访问,但是使用MIME类型text/xml ... *进行传输。 – user3607503
OpenLayers不会通过XHR请求图像。获取错误文本的唯一方法是通过XHR执行请求。或者如果你的WMS支持这个,你应该切换到EXCEPTIONS INIMAGE。 – bartvde