在 OpenLayers 6.9.0 中我使用获取 WMTSCapabilities 但它不起作用
2021-11-12
451
我使用fetch wmtscapabilities,但我收到此消息:未定义的(在承诺中):无法读取未定义的属性(读取'layer') 在function.rl.source.wmts.optionsfromcapabilities(ol.js:2)
这是我使用的代码:
575237443
2个回答
这似乎是在
OpenLayers 源代码
中的
optionsFromCapabilities
行失败:
export function optionsFromCapabilities(wmtsCap, config) {
const layers = wmtsCap['Contents']['Layer'];
检查您是否获取了有效的
WMTSCapabilities.xml
,包括
Contents
标签
它应该看起来类似于
此 xml
MoonE
2021-11-14
谢谢,我现在用另一种方法让它工作了,通过像这样编程原点、扩展和解析:
const size = ol.extent.getWidth(projectionExtent) / 256;
// Er zijn 20 (0 tot 19) zoomniveaus beschikbaar van de WMTS-service voor de BGT-Achtergrondkaart:
let matrixIds = new Array(20);
for (let z = 0; z < 10; ++z) {
matrixIds[z] = 'EPSG:3857:0' + z;
}
for (let z = 10; z < 20; ++z) {
matrixIds[z] = 'EPSG:3857:' + z;
}
const bgRaster = new ol.layer.Tile({
extent: projectionExtent,
source: new ol.source.WMTS({
attributions: 'Kaartgegevens: © <a href="https://www.kadaster.nl">Kadaster</a>',
url: 'https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0?',
layer: 'standaard',
matrixSet: 'EPSG:3857',
format: 'image/png',
projection: projection,
tileGrid: new ol.tilegrid.WMTS({
origin: ol.extent.getTopLeft(projectionExtent),
// origin: -285401.92 + "," + 903402.0,
resolutions: resolutions,
matrixIds: matrixIds
}),
style: 'default',
wrapX: false
}),
title: 'Kadaster',
visible: true
});
Boudewijn van Os
2021-11-16