PDOK Luchtfoto's gebruiken in MapBox met WM(T)S

Ik ben van plan een webapplicatie te maken met MapBox (is net zoiets als Leaflet), en daarin wil ik een kaartlaag met PDOK Luchtfoto’s, het liefste de meest recente en de hoogste resolutie (wat 8cm is als ik het goed heb). Nou ben ik er na wat rondzoeken al achter gekomen dat dit zou moeten kunnen in MapBox met WMS of WMTS (weet niet precies hoeveel het uitmaakt welke van de twee ik gebruik), en dat deze diensten ook worden aangeboden door PDOK/NGR.

Ik loop alleen een beetje vast bij de daadwerkelijke implementatie ervan in een webapplicatie; ik ben wel het een en ander tegengekomen over de WM(T)S-“protocollen”/hoe je een afbeelding kan opvragen met bijv. een url (zie hier). Ook staat er hier een voorbeeld van MapBox zelf (is dus wel met WMS hier, weet niet of je daar net zo goed WMTS kan gebruiken) waarin ze ook een url gebruiken, alleen is het mij nog niet gelukt om een url zoals hier staat te gebruiken in MapBox, ook niet als ik de url verander en er request=GetMap van maak, want dit had ik dacht ik begrepen uit de documentatie van NGR. Mijn vraag is daarom; wat is de correctie manier om dit te implementeren in MapBox? Of zijn er alternatieve methodes om hetzelfde resultaat te krijgen?

Bij voorbaat dank,
HiddeV22

Het verschil tussen WMS en WMTS is dat je bij WMS een bounding box in coördinaten en resolutie in pixels geeft en dan een plaatje krijgt voor je hele kaartbeeld. Bij WMTS geef je een rij, kolom en zoomniveau en dan krijg je 1 van de kaarttegeltjes van 256×256 pixels waarmee een viewer het kaartbeeld mee opbouwt. Als je de kaart in een viewer iets versleept wordt bij WMS de nieuwe uitsnede dus geheel opnieuw gedownload en bij WMTS worden alleen een paar extra tegeltjes gedownload voor het nieuwe deel van het kaartbeeld.

1 like

Eerst maak je in de Mapbox Style JSON object een nieuwe source aan:

    sources: [
        "pdok": {
            "type": "raster",
            "tiles": [
                "https://service.pdok.nl/hwh/luchtfotorgb/wmts/v1_0/2022_orthoHR/EPSG:3857/{z}/{x}/{y}.jpeg"
            ],
            "bbox": [
                -1.6572915949804234,
                48.04050184534028,
                12.431727349396443,
                56.11058967063549
            ],
            "minzoom": 6,
            "maxzoom": 16,
            "tileSize": 256
        },
    ....
    ]

Vervolgens stijl je deze als raster layer:

   layers: [
        {
            "id": "luchtfoto",
            "type": "raster",
            "source": "pdok",
            "paint": {
                "raster-opacity": 0
            }
        },
        ....
    ]
2 likes

Beiden heel erg bedankt voor jullie antwoorden, het is nu gelukt! Ik vraag me nu ook nog af of het uitmaakt welk formaat wordt gebruikt, bijvoorbeeld voor performance? Zo staat in het voorbeeld van @emacgillavry .jpeg, maar .png lijkt ook gewoon te werken, maakt dit iets uit?

Voor rondkijken in een viewer geeft WMTS minder dataoverdracht dan WMS, maar voor de performance zijn andere factoren belangrijker. Een paar jaar terug was WMTS bij PDOK juist veel trager dan WMS. Momenteel ervaar ik bij gebruik geen verschil in laadtijd meer tussen WMS en WMTS in PDOK.

Als je de luchtfoto alleen gebruikt om te bekijken en niet voor automatische (spectrale) beeldherkenning, dan is jpeg beter dan png, want minder dataoverdracht. Voor kaartdata is png juist iets beter dan jpeg (behalve voor gescande historische kaarten).

1 like

Aha, duidelijk, wederom bedankt!

1 like