Bestemmingsplannen zoeken in de Ruimtelijke Plannen API op basis van adres, in Postman

Ik wil graag bestemmingsplannen zoeken in de Ruimtelijke Plannen API op basis van adres. Ik heb de YAML ingeladen in Postman. De API werkt met de keys welk mij zijn toegestuurd, maar ik kan geen functie vinden die me bestemmingsplannen laat zoeken op basis van adres.

Weet iemand hoe ik dit moet aanpakken?

dat wordt lekker knutselen. Haal het adrescoordinaat op uit de BAG-verblijfsobjectpunt en gebruik die XY coordinaat om het bestemmingsplan op te vragen. Succes!

Hallo user5674986468,

Welkom op geoforum! Misschien zou je je gebruikersnaam kunnen aanpassen naar iets dat wat gebruikersvriendelijker is? user5674986468 is zo onpersoonlijk :wink:

En nu wat praktischer: ThomasHaarlem’s antwoord is wel wat erg kort door de bocht. Als ik jou was, zou ik een zoekfunctie maken op basis van de locatieserver. Die bied je de de mogelijkheid om goed en snel te zoeken naar adressen in de BAG. Een gevonden resultaat retourneert ook een RD-coordinaat, en die zou je vervolgens kunnen gebruiken om te zoeken naar bestemmingsplannen. Ik ken verder die ruimtelijke plannen API niet, dus wat vervolg-requests zouden moeten zijn kan ik zo niet zeggen. Maar er zijn hier voldoende anderen die het wel weten, dus vragen kun je altijd hier stellen.

Ik meen uit de antwoorden te begrijpen dat het niet mogelijk is om een bestemmingsplan op te zoeken in op basis van adres, maar dat dit in twee stappen dient te gebeuren.

  1. Adres → RD coordinaat (in een ander programma)
  2. RD coordinaat → bestemmingsplan (in de Ruimtelijke Plannen API).

Maar welke functie van de Ruimtelijke Plannen API zou ik hiervoor moeten gebruiken?

Ik denk dat voorbeelden van werkende endpoints (URLs) van de Ruimtelijke Plannen API mij erg zouden helpen.

Eerlijk gezegd weet ik dat niet zeker. Maar het kan wel op de coordinaten van een punt, dat weet ik wel, dus vandaar mijn antwoord.

De locatieserver kun je op verschillende manier gebruiken. Het mooiste is om eerst de suggest-endpoint te gebruiken, omdat je daarmee tikfouten en zo kunt afvangen. Maar je kunt ook direct het free-endpoint gebruiken. Bijvoorbeeld:

https://api.pdok.nl/bzk/locatieserver/search/v3_1/free?fq=type:adres&q=stationsplein 1 amersfoort

levert de volgende json op:

{
  "response":{"numFound":438562,"start":0,"maxScore":12.099439,"numFoundExact":true,"docs":[
      {
        "bron":"BAG",
        "woonplaatscode":"1664",
        "type":"adres",
        "woonplaatsnaam":"Amersfoort",
        "wijkcode":"WK030718",
        "huis_nlt":"1",
        "openbareruimtetype":"Weg",
        "buurtnaam":"Stationsbuurt",
        "gemeentecode":"0307",
        "rdf_seealso":"http://bag.basisregistraties.overheid.nl/bag/id/nummeraanduiding/0307200000393027",
        "weergavenaam":"Stationsplein 1, 3818LE Amersfoort",
        "straatnaam_verkort":"Stationspln",
        "id":"adr-c1370b8f9a9b662302686e39cff96d2b",
        "gekoppeld_perceel":["AMF00-D-8275"],
        "gemeentenaam":"Amersfoort",
        "buurtcode":"BU03071801",
        "wijknaam":"De Berg-Noord",
        "identificatie":"0307010000393029-0307200000393027",
        "openbareruimte_id":"0307300000306625",
        "waterschapsnaam":"Waterschap Vallei en Veluwe",
        "provinciecode":"PV26",
        "postcode":"3818LE",
        "provincienaam":"Utrecht",
        "centroide_ll":"POINT(5.37615452 52.15321017)",
        "nummeraanduiding_id":"0307200000393027",
        "waterschapscode":"43",
        "adresseerbaarobject_id":"0307010000393029",
        "huisnummer":1,
        "provincieafkorting":"UT",
        "centroide_rd":"POINT(154243.839 462781.748)",
        "straatnaam":"Stationsplein",
        "score":12.099439},
      {
        "bron":"BAG",
        "woonplaatscode":"1664",
        "type":"adres",
        "woonplaatsnaam":"Amersfoort",
        "wijkcode":"WK030718",
        "huis_nlt":"1A",
        "openbareruimtetype":"Weg",
        "buurtnaam":"Stationsbuurt",

Let op dat ik 'm ingekort heb, er komen meer resultaten terug omdat je ook 1A, 1B enzovoorts terugkrijgt. De eerste is nummer 1, en je ziet daarin centroide_rd. Deze kun je dan gebruiken om verder te zoeken naar de ruimtelijke plannen. Zoals gezegd heb ik daar verder geen ervaring mee, maar iemand anders hier vast wel.

Een ander voorbeeld hoe je de locatieserver kunt gebruiken vind je in deze post, waarin het zoeken van adressen met behulp van de suggest-endpoint word beschreven.

1 like

Mooi voorbeeld van een endpoint / url om de RD coordinaten van een adres te bemachtigen. Dankjewel.

Ik ben erg benieuwd naar werkende voorbeelden van het gebruik van de Ruimtelijke Plannen API.

Hallo bart5674986468, ik ben een ontwikelaar van het Ruimtelijke Plannen Opvragen API. Zoals sbjager al aangeeft is het inderdaad niet mogelijk om te zoeken op adres. Zoeken kan op coordinaten van een punt.
Op de DSO viewer wordt met deze link gedemonstreerd hoe dit gedaan wordt: Regels op de kaart - Omgevingsloket . Als je kijkt
naar het XHR request op achtergrond dan zie je een voorbeeld hoe je plannen kan opvragen zoeken coordinaten.

Hierbij een voorbeeld cURL:

curl 'https://ruimte.omgevingswet.overheid.nl/ruimtelijke-plannen/api/opvragen/v4/plannen/_zoek?pageSize=20&regelStatus=geldend,in%20ontwikkeling&beleidsmatigVerantwoordelijkeOverheid.type=deelgemeente/stadsdeel,gemeentelijke%20overheid&expand=bbox' \
  -H 'sec-ch-ua: "Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"' \
  -H 'content-crs: epsg:28992' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36' \
  -H 'Content-Type: application/json' \
  -H 'accept: */*' \
  -H 'Referer: https://viewer.dso.kadaster.nl/' \
  -H 'accept-crs: epsg:28992' \
  -H 'x-api-key: <jouw_api_key>' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{"_geo":{"intersectAndNotTouches":{"type":"Point","coordinates":[194199,465885]}}}' \
  --compressed
1 like

Hallo GokhanOrhun.

Dank voor je antwoord. De cURL welk je hebt bijgevoegd werkt als ik deze kopieer en plak in een terminal onder mijn Ubuntu 22.04. Ik krijg netjes een JSON terug.

Jammer genoeg lijk ik dit voorbeeld echter niet te kunnen reconstrueren in Postman. Ik vind de {{baseUrl}}/plannen/_zoek? functie wel maar het lijkt onmogelijk om een combinatie van parameters in te vullen welk niet een error geeft. Het is mij onbekend welke combinaties van parameters zijn toegestaan en ik kan dit ook nergens in de documentatie vinden. Waar kan ik deze informatie wel vinden? Ik zou deze informatie graag voor iedere API functie willen kunnen achterhalen.

Verder, kan je wellicht een voorbeeld geven van een end point waarmee middels een RD coordinaat de bestemmingsplannen worden achterhaald?

Bij voorbaat dank!

Hallo bart5674986468,

Geeft het cURL request datgene wat jij verwacht?
Je kan in Postman de cURL importeren door gebruik te maken van de import functionaliteit. Hierbij kies je RAW text en plak je het cURL commando. Dit zou de cURL request exact opbouwen in postman.

De API Documentatie van Ruimtelijke Plannen Opvragen API v4 vind je hier: ReDoc Interactive Demo

Hallo GokhanOrhun.

De cURL geeft geen error, maar netjes een respons. Maar dit is niet het type informatie waar ik naar op zoek ben. Ik wil een bestemmingsplan zoeken op basis van adres. Nu heb ik uit eerdere antwoorden in deze forum thread begrepen dat de RP API niet bestemmingsplannen kan zoeken op basis van adres, maar op basis van RD coordinaat. Dus nu zoek ik een cURL / end point / functie (hoe je het ook wil noemen) waar ik een bestemmingsplan op basis van RD coordinaat mee kan vinden.

De import functie en plakken van het cURL commando werkt, na het invullen van de API key, goed in Postman.

De documentatie had ik al gevonden maar ook daar kan ik niet een functie vinden waar ik bestemmingsplannen op basis van RD coordinaten mee kan vinden.

Kan je me wellicht een cURL geven waar ik bestemmingsplannen op basis van RD coordinaten mee kan vinden?

Het plannen/_zoek endpoint dat Gökhan hierboven heeft genoemd is precies wat je zoekt.

Je kan in de query parameters meegeven dat het enige plantype waarin je geïnteresseerd bent bestemmingsplannen zijn (voeg planType=bestemmingsplan toe aan de URL). En in de requestbody zit het RD coordinaat waar je mee zoekt. In het voorbeeld van Gökhan is dat het volgende:

{
    "_geo": {
        "intersectAndNotTouches": {
            "type": "Point",
            "coordinates": [
                194199,
                465885
            ]
        }
    }
}

Op dit endpoint moet je ook de Content-Type=application/json en Content-Crs=epsg:28992 headers in het request hebben om aan te geven hoe de requestbody gelezen moet worden.

Als je bovenstaand request uitvoert, krijg je twee bestemmingsplannen in de gemeente Apeldoorn in de respons waarvan het plangebied “intersects” met het opgegeven punt in de requestbody.

Als dit toch niet is wat je zoekt, zul je iets beter uit moeten leggen waar je wel naar op zoek bent.

Mocht je interesse hebben in een dag waarop je met andere ontwikkelaars de DSO APIs hands-on kan ontdekken en hulp kan vragen bij DSO experts, is er binnenkort een hackaton.

Hallo RobinTopper.

Nu je het zegt zie ik inderdaad dat de RD coordinaten worden meegegeven in het --data-raw argument.

Ik heb inmiddels een Python programma geschreven om met requests de plannen/_zoek aan te roepen en dit lijkt goed te werken.

Bij deze is mijn vraag dus beantwoord.

Dank aan iedereen die heeft geholpen!

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