Wat is het verschil tussen de `within` en `contains` operators?

De BAG API ondersteunt spatial lookups middels de within en contains operators. Wat is het verschil tussen de twee en welke geometrie wordt als referentie gebruikt: de geometrie in de POST of de geometrieen in de BAG?

Stel ik stuur een buffer an 200 m als Polygoon. Wat krijg ik terug bij within en wat krijg ik terug bij contains? En wordt er gekeken of de meegestuurde buffer within de BAG geometrie valt of andersom?

Als je een polygon opstuurt met operator within krijg je alle results waarvan de geometrie binnen die polygon vallen.

Als je een point opstuurt met operator contains krijg je alle results waarvan de geometrie dat point bevatten.

En als ik een punt met within stuur krijg ik… een intersect?

En wat krijg ik met contains als ik een polygoon stuur die groter is dan de panden in dat gebied?

Als je een punt met within stuurt krijg je niks, want er zijn geen geometrieën die binnen een punt liggen. Als je contains stuurt met een polygoon krijg je alle panden waarvan de geometrie die polygoon bevatten, dus als die groter is krijg je niks.

Beste DVH,
Zou je een voorbeeld kunnen geven voor het zoeken van een punt in een meegeven polygon?

Gebruik het POST endpoint voor de objecten die je zoekt.

Geef in de headers:

  • een Content-Type header mee met de waarde application/json
  • een Content-Crs header met de code van de Crs van de meegegeven geometrie (epsg:4258 voor ETRS89 of epsg:28992 voor RD).

Stop in de requestbody iets als dit:

{
    "geometrie": {
        "intersects": {
            "type": "Polygon",
            "coordinates": [
                [
                    [
                        6.87371635699998,
                        53.31878638949943
                    ],
                    [
                        6.87371689677065,
                        53.31872842126852
                    ],
                    [
                        6.87395467895491,
                        53.31872967252073
                    ],
                    [
                        6.87395459540266,
                        53.31878560938127
                    ],
                    [
                        6.87371635699998,
                        53.31878638949943
                    ]
                ]
            ]
        }
    }
}

In plaats van intersects heb je ook de eerder in dit topic beschreven opties within en contains.

Twee opmerkingen hierbij:

  • de huidige BAG V1 API ondersteunt zoeken met een polygon en kan nog gebruikt worden tot oktober dit jaar. De BAG V2, ofwel BAG Individuele bevragingen API, die na oktober gebruikt zou moeten worden, ondersteunt alleen zoeken met een punt geometrie.
  • In plaats van een drie jaar oud topic weer tot leven te wekken, kan je beter een eigen nieuw topic beginnen.

Bedoel je dat je in De BAG V2 geen punten kunt opvragen binnen in een polygon vallen?

Dat is precies wat ik bedoel.

Zie ook de product-matrix van de BAG V2 voor een volledig overzicht van de mogelijkheden: https://github.com/lvbag/BAG-API/blob/master/Documentatie/Productmatrix%20BAG%20Individuele%20Bevragingen%202.1.4.pdf

en overige documentatie op