Waterdelen opvragen via BGT API

Ik ben hier nogal nieuw in, maar ik probeer waterdelen (als vector bestand) op te vragen via het BGT met het doel om deze uit een foto te kunnen clippen.

Momenteel gebruik ik ArcGis-online platform om de features van de BGT te gebruiken. In combinatie met een polygoon van mijn interessegebied en de intersect functie, krijg ik de features die ik wil.
om de achtergrond uit het BGT te trekken en vervolgens filter ik daar dan de waterdelen uit. Hier zou ik graag een API voor gebruiken, maar ik kom er niet erg ver mee.

Ik heb iets geprobeerd dat er wel op lijkt:
https://geodata.nationaalgeoregister.nl/tiles/service/wmts?layer=bgtachtergrond&style=default&tilematrixset=EPSG%3A28992&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix=13&TileCol=4102&TileRow=4428

Alleen dit geeft een PNG terug en hier kan ik niet de waterdelen uitfilteren. Documentatie over hoe ik deze API kan gebruiken kan ik niet vinden.

Heeft er iemand een idee hoe ik dit zou kunnen aanpakken?

Groet,
Lars

Hoi @lkrombeen,

Ik neem hier aan dat je opzoek bent naar vector data, en dan specifiek waterdelen.
Deze kan jij downloaden via de BGT download viewer: https://download.pdok.io/lv/bgt/viewer/
Hierin kan jij een specifiek interessegebied selecteren (of de complete dataset) en de featuretypes die je wilt hebben, in jouw geval waterdelen.

Je kunt ook rechtstreeks requests doen op de api achter de BGT download viewer. Daarvoor kun je bijvoorbeeld de command line utility curl gebruiken, of een andere tool waarmee je POST requests kunt doen.

Met onderstaand request doe je bijvoorbeeld een verzoek om alle waterdelen in een bounding box rondom het dorp Zoutkamp klaar te zetten in een gezipt CITYGML bestand:

curl -X POST "https://download.pdok.io/lv/bgt/api/v1/full/custom" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"featuretypes\":[\"waterdeel\"],\"format\":\"citygml\",\"geofilter\":\"POLYGON((213089 593892, 217076 593892, 217076 597981, 213089 597981, 213089 593892))\"}"

Response:
{"_links":{"status":{"href":"/lv/bgt/api/v1/full/custom/5a9f35b4-6a37-4234-70fb-c25dd582045f/status"}},"downloadRequestId":"5a9f35b4-6a37-4234-70fb-c25dd582045f"}

Met het downloadRequesId uit de response kun je vervolgens checken of de download al klaar staat:

curl -X GET "https://download.pdok.io/lv/bgt/api/v1/full/custom/5a9f35b4-6a37-4234-70fb-c25dd582045f/status" -H "accept: application/json"

Zodra je een response krijgt met in de body COMPLETED en HTTP statuscode 201 (‘created’), kun je het bestand downloaden met de gespecificeerde link:

{"_links":{"download":{"href":"/lv/bgt/api/v1/extract/55359369-f738-4618-a933-38c701c5463c/extract.zip"}},"progress":100,"status":"COMPLETED"}

Download-link uit het voorbeeld:
https://download.pdok.io/lv/bgt/api/v1/extract/55359369-f738-4618-a933-38c701c5463c/extract.zip

De actualiteit van de dataset kun je overigens opvragen via https://download.pdok.io/lv/bgt/api/v1/dataset

4 likes

Dit was precies waar naar ik op zoek was. Heel erg bedankt :slight_smile:

Je kunt ook gebruikmaken van de Swagger UI API pagina om de verzoeken uit te proberen en te bekijken:
https://download.pdok.io/lv/bgt/api/v1/ui/

Hallo Lars, We hebben de verschillende lagen uit de BGT geregistreerd als feature layers in ArcGIS, zoals BGT - waterdeel. Deze zijn ook te expoteren via ArcGIS Pro of ArcMap. Het is dus ook mogelijk om de waterdelen uit je interessegebied te selecteren en deze vervolgens direct te exporteren.

Voor de nieuwelingen…hier volgt een goede en belangrijke tip:

De ID (download request ID) die in eerste instantie gemaakt wordt bij de eerste response is NIET dezelfde als de ID die in de link staat om de extract.zip te downloaden. Zorg dat je beide ID’s apart ophaalt als je deze wilt verwerken in een script.

Het heeft mij 3 uur geduurd voordat ik daar achter kwam :see_no_evil: