3 вопроса:
- должен быть установлен экстент, чтобы избежать нежелательных вызовов в WMS, когда он выходит за пределы экстента (плохая практика, но не причина сбоя)
- вызов к WMS с
'TILED': true
предполагает, что GeoWebCache настроен в GeoServer (и сбой подтверждает, что он не был настроен, поскольку вы не являетесь его владельцем, вам следует избегать этой опции; в противном случае, это хорошая практика)
- есть микс версии WMS (1.3.0 и 1.1.1). Это нелегко вывести, см. Свойства
params
в https://openlayers.org/en/latest/apidoc/ol.source.TileWMS.html TLDR: вызовы WMS по умолчанию в библиотеке OpenLayers - 1.3.0. Итак, 'SRS': 'EPSG:3857'
должно быть 'CRS': 'EPSG:3857'
Ниже приведена демонстрация кода (проверено и прокомментировано, прежде чем ответить)
<!DOCTYPE html>
<html>
<head>
<title>WMS debug bad extent and geowebcache unwanted</title>
<link rel="stylesheet" href="https://openlayers.org/en/v4.6.5/css/ol.css" type="text/css">
<!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script>
<script src="https://openlayers.org/en/v4.6.5/build/ol.js"></script>
</head>
<body>
<div id="map" class="map"></div>
<script>
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([5.38722, 52.25865]),
zoom: 6
})
});
var wms = new ol.layer.Tile({
source: new ol.source.TileWMS({
url: 'https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wms',
params: {
'LAYERS': 'Actueel_ortho25',
// Commented because it's supposed to speed up thing as long as it provides call to GeoWebcache to cache WMS as tiles behind the scene but it's what cause the error you got
//'TILED': true,
'FORMAT': 'image/jpeg',
// As default WMS calls in OpenLayers library are 1.3.0, you should use CRS and not CRS
'CRS': 'EPSG:3857'
},
serverType: 'geoserver'
}),
// To avoid blank background from your WMS to spread on the world and avoid making WMS call where there is no photos
// Extent deduced from https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
extent: [-184488.85727, 6113595.5499, 1383893.54886, 7580462.49937]
});
map.addLayer(wms);
</script>
</body>
</html>