PDOK gaat TMS uitfaseren

PDOK biedt voor een aantal databronnen zowel TMS als WMTS viewservices. TMS en WMTS worden vooral gebruikt bij databronnen met een groot volume en hoge afname. Qua output/resultaat geven beide type viewservices “tiles” terug en hebben ze beide een RESTful ZXY API waarmee simpele ZXY requesten gemaakt kunnen worden.

WMTS is in vergelijking met TMS een OGC standaard en we zien bij PDOK dat er veel meer gebruik wordt gemaakt van WMTS dan van TMS. Voor PDOK (in opdracht van haar data-aanbieders) heeft het onderhouden van 2 protocollen echter wel impact.

Om die reden is PDOK voornemens om vanaf 1 maart 2021 het TMS protocol niet meer aan te bieden. Elke databron bij PDOK die via een TMS wordt aangeboden heeft ook een WMTS. Hierbij willen we gebruikers die nog gebruik maken van TMS verzoeken om over te stappen naar WMTS.

Mochten er vragen zijn dan horen we dat natuurlijk graag!

1 like

Dag Jeroen,
Ik heb even een vraag over het uitfaseren van TMS.

De officiele WMTS aanvraag is:

https://geodata.nationaalgeoregister.nl/tiles/service/wmts/?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=bgtpastel&STYLE=_null&TILEMATRIXSET=EPSG%3A28992&TILEMATRIX=EPSG%3A28992%3A13&TILEROW=4084&TILECOL=4469&FORMAT=image%2Fpng8

Nu wordt de volgende aanvraag ook veel gedaan (direct naar het bestand):
https://geodata.nationaalgeoregister.nl/tiles/service/wmts/bgtpastel/EPSG:28992/13/4469/4084.png8

De basis hiervan is ook een wmts: https://geodata.nationaalgeoregister.nl/tiles/service/wmts ,
maar het is wel een ZXY aanvraag.

Blijven beide URL aanroepen mogelijk in de nabije toekomst?

Peter-Paul / GeoNovation B.V.

de officiele WMTS aanvraag is:

https://geodata.nationaalgeoregister.nl/tiles/service/wmts/?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=bgtpastel&STYLE=_null&TILEMATRIXSET=EPSG%3A28992&TILEMATRIX=13&TILEROW=4084&TILECOL=4469&FORMAT=image%2Fpng8

met TILEMATRIX=13 i.p.v. TILEMATRIX=EPSG%3A28992%3A13 (EPSG:28992:13) zoals dat in de WMTSCapabilities beschreven is.

Dat het ‘nog’ werkt met EPSG:28992:xx is een erfenis van onze ouwe GeoWebCache stack, wat nu met een aantal rewrite rules werkbaar gemaakt is. (wat dus mogelijk kan/zal verdwijnen)

Met m.b.t. de WMTS KVP of Restfull aanroep blijven wij deze beide ondersteunen, gezien beide redelijk ‘interchangeable’ zijn.

1 like

Ik gebruik de BGT, BRT, Luchtfoto en OpenTopo nu in Leaflet met de RD-projectie middels een TMS. Nu wil ik dit aanpassen naar een restfull WMTS naar aanleiding van dit bericht, maar ik kom er niet helemaal uit. Is dit überhaupt mogelijk en kan iemand mij hier mee verder helpen?

Nieuwe code met WMTS:

L.tileLayer('https://geodata.nationaalgeoregister.nl/tiles/service/wmts/brtachtergrondkaartpastel/EPSG:28992/{z}/{x}/{y}.png', {
    tms: true,
    minZoom: 3,
    maxZoom: 15,
    attribution: 'Kaartgegevens &copy; <a href="https://www.kadaster.nl">Kadaster</a>',
    continuousWorld: true,
});

Resultaat:

Oude code met TMS:

L.tileLayer('https://geodata.nationaalgeoregister.nl/tiles/service/tms/1.0.0/brtachtergrondkaartpastel/EPSG:28992/{z}/{x}/{y}.png', {
    tms: true,
    minZoom: 3,
    maxZoom: 15,
    attribution: 'Kaartgegevens &copy; <a href="https://www.kadaster.nl">Kadaster</a>',
    continuousWorld: true,
});
3 likes

Ja

@antonbakker heeft een mooi voorbeeld gemaakt met WMTS+Leaflet

https://arbakker.github.io/pdok-js-map-examples/leaflet-wmts-epsg28992/index.html

En als je in de commits zoekt zie je ook een commit van TMS->WMTS,
In je WMTS code staat zo ie zo tms: true, dat lijkt mij ook een mooi start punt :smiley:

Het grootste verschil tussen TMS en WMTS zit het in de oorsprong van het grid, waar TMS links onderin begint en WMTS links bovenin. Dat verklaart ook dat van links naar rechts je kaartbeeld er ‘goed’ uitziet maar niet van onder naar boven (of andersom…)

2 likes

@wouter.visscher, precies wat ik hebben moest, thanks! En ook zeker @antonbakker bedankt voor je voorbeelden, die ga ik onthouden! De crux zat 'm bij mij vooral in de CRS.

Het grootste verschil tussen TMS en WMTS zit het in de oorsprong van het grid, waar TMS links onderin begint en WMTS links bovenin. Dat verklaart ook dat van links naar rechts je kaartbeeld er ‘goed’ uitziet maar niet van onder naar boven (of andersom…)

Dat verklaard een hoop. Weer wat geleerd!

3 likes

Het lijkt erop dat voor de labels van luchtfoto (lufolabels) de WMTS(KVP) aanroep wel werkt, maar de REST aanroep niet.

WMTS:
https://geodata.nationaalgeoregister.nl/tiles/service/wmts?&service=WMTS&request=GetTile&version=1.0.0&layer=lufolabels&style=default&tilematrixset=EPSG%3A28992&format=image%2Fpng&height=256&width=256&tilematrix=13&tilecol=4829&tilerow=2988
REST (deze geeft internal error) :
https://geodata.nationaalgeoregister.nl/tiles/service/wmts/lufolabels/EPSG:28992/13/4829/2988.png
ter vergelijking, OpenTopo werkt wel:
https://geodata.nationaalgeoregister.nl/tiles/service/wmts/opentopo/EPSG:28992/13/4829/2988.png

Heb ik iets over de lufolabels verkeerd begrepen of is hier iets verkeerd(/anders) ingericht?

Blijven de lufolabels wel beschikbaar via geodata.nationaalgeoregister.nl of verhuizen deze (ook) naar service.pdok.nl ??

@Sjoerd ik ga het even navragen v.w.b. de aanroep. De Luchtfoto labels zullen uiteindelijk ook een keer overgaan naar service.pdok.nl maar hier hebben we nog geen planning voor (wordt dus niet op de hele korte termijn verwacht).

@Sjoerd We hebben de REST variant van de lufolabels aangezet. Bedankt voor het melden.

4 likes

Bedenk dat feb 2021 een korte maand is! Hopelijk hoeven niet velen het weekend over te werken voor de TMS-WMTS omzetting, maar was ruim aangekondigd.

@antonbakker bedankt voor de voorbeelden! Ik en mogelijk anderen moeten helaas nog OpenLayers v2 apps onderhouden. Gisteren “over” gegaan. De combinatie WMTS REST in RD Tiling schema en OpenLayers v2 kreeg ik in beperkte tijd niet voor elkaar. (wie?) Dus weer de for-loop-riedel voor de KVP MatrixIds Array (daarom altijd WMTS KVP vermeden).

Vraag 1: uit bovenstaande is mij nog niet duidelijk of WMTS REST voor PDOK Luchtfoto wordt ondersteund. In redelijk ver verleden weleens tegenaan gelopen. Was iets in Apollo server ofzo.

Vraag 2: matrixIds array param is toch altijd naast matrixSet nodig in new OpenLayers.Layer.WMTS() KVP voor OL2? Of is er ergens iets globaals (Map?) te zetten ofzo?

1 like

Ok, al antwoord vraag 2: matrixIds zetten niet perse nodig in OL2 WMTS constructor , neemt de resolutions/zoomlevels van inderdaad OL Map object over.

Ik geef wel serverResolutions array in constructor mee bijv als Map door de resolutions zoomLevel 0-16 heeft maar bijv brtachtergrondkaart slechts 0-14. Dan kun je serverResolutions op “14 resoluties” zetten:
[3440.640, 1720.320, 860.160, 430.080, 215.040, 107.520, 53.760, 26.880, 13.440, 6.720, 3.360, 1.680, 0.840, 0.420, 0.210]
Dan zal OL alleen t/m zoomlevel 14 van de WMTS opvragen en levels 15 en 16 lokaal “opblazen”. Is sowieso bij veel raster-bronnen goede optie omdat de server anders natuurlijke resoluties moet “opblazen” of WMS requests moet doen, en nu daarvoor ontzien wordt.

Antwoord vraag 1:
Ja, WMTS REST bij de Open Data Luchtfoto wordt ondersteund.
Zie de capabilities van bijv. de RGB variant: https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/1.0.0/WMTSCapabilities.xml

Voorbeeld: https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/2019_ortho25/EPSG:28992/0/0/0.jpeg

1 like

Ok bedankt @rbhailal !

Is er een reden dat voor de https://geodata.nationaalgeoregister.nl/tiles/service/wmts service ook geen WMTS REST ondersteunt wordt?

@Just_OSGeo voor OpenLayers 2 heb ik een JsFiddle met KVP en REST layers gemaakt: OpenLayers 2 WMTS KVP/REST PDOK/Openbasiskaart - JSFiddle - Code Playground

1 like

Bedankt @matthijsln . Is me eindelijk gelukt (WMTS REST PDOK Lufo) met jouw voorbeeld!
Mijn WMTS kennis bleek ook roestig, een ‘?’ in base URL bij REST hielp ook niet… WMTS altijd links laten liggen ten faveure TMS en XYZ.

Wel vreemd, maar OL2-specifiek dat 'layer' en 'style' OL2 WMTS-REST constructor attributen benodigd zijn. Hun waarde bijv layer: 'bla' doet er niet toe. Komt ook uit de OL2 code.

Maar goed, belangrijkste is dat dus blijkbaar die for-loop/array matrix id’s generatie niet nodig zijn bij KVP. Dat vond ik altijd soort onnodige ‘client-voorkennis’ en on-elegant.

Al met al genoeg voorbeelden hier voor ieder om de transitie te maken! KVP blijft dus de GGD voor PDOK WMTS.

Dit topic is 180 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.