Gebruik API geometrieen opvragen

Ik wil graag geometrieën van een omgevingsverordening opvragen. Kan iemand mij een voorbeeld geven van hoe de API gebruikt wordt? Ik ben nieuw met het gebruik van deze API’s en met de documentatie kom ik er niet uit … Liefst in Python

Zelf heb ik al het een en ander geprobeerd in python en postman, maar ik krijg verschillende foutmeldingen. Veel 400, maar bijvoorbeeld ook 422: Deze API ondersteunt CRS84 niet

https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/geometrieopvragen/v1

Identificatie omgevingsverordening: /akn/nl/act/pv21/2023/omgevingsverordening

De functionele documentatie (PDF op Omgevingsdocumenten geometrie opvragen - Ontwikkelaarsportaal) geeft een voorbeeld van het gebruik van deze API in combinatie met een API om de geometrie identificaties uit op te halen.

Als je specifieke requests hebt waarvan je niet snapt waarom ze niet werken, is het handig om het request dat je doet + headers te delen.

In de functionele documentatie staat een voorbeeld inderdaad, maar voor mij is dit niet uitgebreid genoeg (het is de eerste keer dat ik hiermee werk). Waar moet ik deze code invoeren? Als ik het copy+paste in postman komt er in ieder geval niks uit.

Bij alles gebruik ik alleen de header ‘x-api-key’ en dan mijn API key.

Een voorbeeld:

Via de downloaden-api krijg ik voor “/akn/nl/act/pv21/2023/omgevingsverordening” verzoekidentificatie “a79ae0f9-6303-4a13-b333-c8659ef1925b”

Als ik dan de volgende url gebruik geeft hij error 404. https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/geometrieopvragen/v1/geometrieen/a79ae0f9-6303-4a13-b333-c8659ef1925b/crss/EPSG:28992

In het voorbeeld moet ik de verbeelden-url gebruiken, maar die krijg ik ook niet aan de praat. Ik heb dit geprobeerd:
https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/presenteren/v7/locaties/_zoek?parameter=document.identificatie&zoekWaarden=/akn/nl/act/pv21/2023/omgevingsverordening

De snelste weg om van een AKN van een omgevingsdocument te komen tot de geometrieën is in twee stappen.

Stap 1 is het verkrijgen van de geometrie identificaties. De nieuwe Presenteren V8 API biedt een endpoint waarmee je direct alle annotaties van een omgevingsdocument op kan vragen. Voor jouw geval zou het dit request zijn:

curl --location 'https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/presenteren/v8/regelingen/_akn_nl_act_pv21_2023_omgevingsverordening/regeltekstannotaties' \
--header 'x-api-key: xxx'

Curl requests kan je direct in Postman importeren als je dat fijn(er) vindt werken.

Deel van de respons ziet er zo uit:

{
    "regelteksten": [ ... ],
    "regelsVoorIedereen": [ ... ],
    "omgevingswaarderegels": [ ... ],
    "instructieregels": [ ... ],
    "gebiedsaanwijzingen": [ ... ],
    "locaties": [
        {
            "identificatie": "nl.imow-pv21.gebied.09cbdf3436f34a9aacb8c8a4d68b41c8",
            "noemer": "Overstromingskans bebouwd gebied: waardeInRegeltekst",
            "locatieType": "Gebied",
            "geometrieIdentificatie": "7af8b99c240e461fa69082559b665254"
        },
        {
            "identificatie": "nl.imow-pv21.gebied.af057b514d054090bd688388e111e034",
            "noemer": "Zonnepark bij vliegbasis",
            "locatieType": "Gebied",
            "geometrieIdentificatie": "4616bdcdc6204cb79ecfd12b0cc6c4fc"
        },
        ...
    ],
    "activiteiten": [ ... ],
    "omgevingsnormen": [],
    "omgevingswaarden": [ ... ],
    "kaarten": [ ... ]
}

Hier zie je dat ieder van de locaties (met uitzondering van locatiegroepen) een geometrieIdentificatie heeft. Deze kan je gebruiken om de Geometrie Opvragen V1 API te bevragen.

Bijvoorbeeld de geometrie van de eerste locatie uit bovenstaande respons:

curl --location 'https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/geometrieopvragen/v1/geometrieen/7af8b99c240e461fa69082559b665254?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F28992' \
--header 'x-api-key: xxx'

Hierin is de crs query parameter gebruikt om aan te geven dat je de respons in rijksdriekhoekstelsel (RD) coordinaten wilt hebben (http://www.opengis.net/def/crs/EPSG/0/28992). Andere ondersteunde CRS-en zijn uit het /crss endpoint van de API te halen (momenteel alleen ETRS89 en RD).

De respons van bovenstaand request is de GeoJSON van de geometrie met identificatie 7af8b99c240e461fa69082559b665254. Voor alle andere locaties/geometrieën zal je een vergelijkbaar request moeten doen.

3 likes

OGC:CRS84 is gelijk aan EPSG:4326 (2D WGS84 ensemble) afgezien van de volgorde lon,lat in plaats van lat,lon. Het advies van Geonovum en NSGI is om voor de meeste toepassingen EPSG:4326 (2D WGS84 ensemble) gelijk te stellen aan EPSG:4258 (2D ETRS89 ensemble) dat de bovengenoemde API wel ondersteund. Dus als je de volgorde van de ETRS89-coördinaten uit de API omwisseld krijg je CRS84. Of je kan de NSGI-Transformatie-API gebruiken om coördinaten te transformeren naar het door jou gewenste CRS.

1 like

Bedankt voor het antwoord! Op deze manier lukt het me inderdaad voor Friesland.

Als ik naar een andere omgevingsvisie (bijv. Overijssel) kijk, dan worden er locatiegroepen gebruikt. Deze hebben geen geometrieidentificatie. Als ik het goed begrijp hangen alle locaties (met geometrieidentificatie) dan onder een groep. Maar als ik een locatie opvraag weet ik niet meer bij welke groep deze hoort. Hoe krijg ik de geometrieën per groep?

In de respons van https://service.omgevingswet.overheid.nl/publiek/omgevingsdocumenten/api/presenteren/v8/regelingen/_akn_nl_act_pv23_2023_omgevingsverordening/regeltekstannotaties (ik neem aan dat je de omgevingsverordening Overijssel bedoelde) zitten onder locaties ook de locatiegroepen. Bijvoorbeeld:

{
    ... knip ...
    "locaties": [
        ... knip ...
        {
            "identificatie": "nl.imow-pv23.gebiedengroep.003000000000000000000374",
            "noemer": "gebiedsontsluitingswegen",
            "locatieType": "Gebiedengroep",
            "locatieRefs": [
                "nl.imow-pv23.gebied.003000000000000000000374e266454",
                .... nog 330 locatie identificaties ...
                "nl.imow-pv23.gebied.003000000000000000000374e266547"
            ]
        },
        ... knip ...
        {
            "identificatie": "nl.imow-pv23.gebied.003000000000000000000374e266454",
            "locatieType": "Gebied",
            "geometrieIdentificatie": "b83e27a1-24bc-4409-be71-54bd93b318f5"
        },
        ... knip ...
    ],
    ... knip ...
}

De locatiegroep hierboven bevat een locatieRefs array dat alle locatie identificaties bevat van de locaties in de groep. Deze locaties kan je vervolgens ook in het locaties array vinden; in het voorbeeld hierboven is locatie nl.imow-pv23.gebied.003000000000000000000374e266454 onderdeel van locatiegroep nl.imow-pv23.gebiedengroep.003000000000000000000374.

Je hebt dus in de respons alle informatie zitten om uit te vogelen welke locaties in een groep zitten en welke geometrieën er bij horen.

1 like