Een bounding box is het eenvoudigste en nuttigste ruimtelijke primitief in elke mapping-stack. Het zijn vier getallen die een rechthoek beschrijven in breedtegraad- en lengtegraadrumte, en het duikt op in vrijwel elke API-aanroep, elk GeoJSON-bestand en elke kaartbibliotheek die je ooit zult gebruiken.
Deze gids legt uit wat een bounding box is, welke formaatconventies je moet kennen, de productiepatronen waarbij hij zijn waarde bewijst en de valkuilen die elke developer minstens één keer raak treffen.
De definitie
Een bounding box (bbox) is de kleinste as-uitgelijnde rechthoek die een feature of een set punten omvat. "As-uitgelijnd" betekent dat de zijden lopen langs de assen van breedtegraad en lengtegraad; de rechthoek is niet gedraaid. De bbox wordt beschreven door vier getallen: de westelijke lengtegraad, de zuidelijke breedtegraad, de oostelijke lengtegraad en de noordelijke breedtegraad.
Voor Parijs is de officiële gemeentebbox ruwweg [2.224, 48.8156, 2.4699, 48.9022]. Voor het vasteland van Frankrijk is die ruwweg [-5.142, 41.333, 9.560, 51.089]. Voor de hele planeet is die [-180, -90, 180, 90].
Een bbox is altijd twee tegenovergestelde hoeken. Hij kan geen niet-rechthoekige vorm beschrijven, maar hij kan wel de rechthoek beschrijven die elke vorm omwikkelt, wat genoeg is voor snelle ruimtelijke filtering.
Het formaatprobleem
De formaatconventies voor bbox zijn inconsistent over systemen heen, en die inconsistentie is de bron van de meeste bbox-bugs.
GeoJSON, OGC-standaarden en de meeste moderne APIs: [west, south, east, north], equivalent aan [minLng, minLat, maxLng, maxLat]. Lengtegraad eerst, breedtegraad tweede, beide in WGS84.
Sommige webkaartbibliotheken (Leaflet, Mapbox GL bounds-objecten): een LatLngBounds-object met _southWest- en _northEast-hoeken. Lat eerst, dan lng.
Veel oudere APIs en CSV-exports: [south, west, north, east] (lat eerst). Lees de spec.
Tileservices en WMS: bbox in de eenheden van de projectie (Web Mercator meters, niet lat/lng) als de tegel in EPSG:3857 is.
De veilige vuistregel: gebruik nooit een kale 4-element array in je eigen code. Wrap het in een getypeerd object met benoemde velden ({ west, south, east, north }) zodat de volgorde expliciet is. Converteer bij API-grenzen.
Waar bounding boxes hun waarde bewijzen
Een bbox is het snelste ruimtelijke filter dat er is. Drie klassieke toepassingen:
Een kaart op een feature instellen. Als de gebruiker op een zoekresultaat landt, roep je map.fitBounds(bbox) aan en zoomt en scrollt de kaart om het feature met passende padding te tonen. Elke moderne kaartbibliotheek heeft dit primitief.
API-queries op gebied filteren. Database-engines en zoek-APIs indexeren bboxes zeer efficiënt. Een query als "toon me alle plekken in dit viewport" stuurt de zichtbare bbox naar de server, die een ruimtelijke index gebruikt om alleen de overeenkomende records terug te geven. Dit is het fundament van viewport-gebaseerd zoeken.
Autocomplete en geocoding bijsturen. Geef de huidige kaart-bbox als viewport-bias mee. De geocoder weegt resultaten binnen de bbox zwaarder, zodat het typen van "Liberty" in het New York-viewport de Statue of Liberty retourneert vóór elke andere Liberty in de wereld.
Een vierde, minder voor de hand liggende toepassing: bboxes zijn de boekhoudeenheid van een vector-tile-systeem. Elke tegel dekt een bekende bbox op een bekend zoomniveau, en de renderer combineert ze tot de zichtbare kaart.
Wat een API teruggeeft
De meeste geocoding-APIs retourneren naast elke match een bbox, omdat die zowel de grootte van het gevonden feature aangeeft (een landsbbox is enorm, een gebouwbbox is klein) als hoe de kaart in te stellen. Een geocodingrespons voor "France" retourneert een bbox op nationaal niveau; een respons voor "10 Downing Street" retourneert een bbox op gebouwniveau.
Je kunt de grootte van de geretourneerde bbox gebruiken als sanity check op precisie. Een query die op "country"-precisie matcht maar een gebouwgrote bbox retourneert is verdacht. Een query die op "rooftop"-precisie matcht maar een stadsgrote bbox retourneert is stuk.
Bounding boxes die de antimeridian overschrijden
Een subtiele valkuil: een bbox die de 180-graden-antimeridian overschrijdt (bijv. voor Rusland, de Stille Oceaan, Fiji) kan niet worden beschreven als west < east omdat die om de aarde wikkelt. Conventies variëren:
- Sommige systemen splitsen zo'n bbox in twee stukken, één voor elke kant van de antimeridian.
- Sommige systemen staan
west > easttoe en interpreteren dat als "wikkel om". - GeoJSON staat wikkelen toe maar raadt splitsen aan voor interoperabiliteit.
Voor de meeste Europese of nationale use cases kom je dit nooit tegen. Als je een globaal product bouwt (vliegroutes, scheepvaart, visserij), test dan de antimeridian-case expliciet.
Bounding boxes versus polygonen
Een bbox is een rechthoek. Een echt feature is zelden rechthoekig. De bbox van Frankrijk omvat delen van de Atlantische Oceaan en Spanje. De bbox van Manhattan omvat delen van New Jersey en Queens.
Als de rechthoekige benadering goed genoeg is (kaart instellen, snelle pre-filtering), is bbox het juiste gereedschap. Als je moet weten of een punt daadwerkelijk binnen het feature valt, heb je point-in-polygon-berekeningen nodig tegen de echte grensgeometrie. Een veelgebruikt productieprogramma: filter eerst op bbox (snel, indexeerbaar, elimineert 99% van de records) en voer dan point-in-polygon uit op de resterende records (langzamer maar nauwkeurig). Deze twee-staps-aanpak is hoe de meeste ruimtelijke databases achter de schermen werken.
Bounding boxes in computer vision
Je ziet misschien "oriented bounding box" genoemd in objectdetectie, robotica of 3D-rendering. Dat is een ander concept: een OBB is gedraaid om een feature strakker te omvatten dan een as-uitgelijnde box zou doen. In ruimtelijk werk zijn as-uitgelijnde bboxes de standaard omdat ze netjes indexeren, in het tile-grid passen en triviaal te testen zijn op overlap. Oriented bboxes verschijnen als je geroteerde rechthoekwiskunde nodig hebt, wat zeldzaam is in mapping maar gebruikelijk in computer vision.
Hoe MapAtlas bounding boxes gebruikt
Elk resultaat van de Geocoding API en Search API retourneert een bbox-veld met de extent van het gevonden feature in WGS84 lengtegraad/breedtegraad-volgorde, precies het formaat dat GeoJSON en moderne kaartbibliotheken verwachten. Je kunt een boundary.rect.*-parameter meegeven om geocoding tot een viewport te beperken en de Isochrone API retourneert de reistijdpolygonen met een bijbehorende bbox zodat je de kaart kunt instellen zonder die zelf te berekenen.
Voor een hands-on intro tot GeoJSON en hoe bboxes passen in het grotere plaatje van ruimtelijke data, zie Wat is GeoJSON en Wat is een geocode.
Veelgestelde vragen
Wat is een bounding box?
Een bounding box (vaak afgekort tot bbox) is de kleinste as-uitgelijnde rechthoek die een geografisch feature of een set punten omvat. Hij wordt beschreven door vier getallen: de minimale en maximale lengtegraad en de minimale en maximale breedtegraad. Bounding boxes zijn overal in mapping aanwezig: om een kaart op een feature in te stellen, om databasequeries op gebied te filteren, om de extent van een tegel te definiëren en om geocodingresultaten te beperken tot een regio. Ze zijn het eenvoudigste en snelste ruimtelijke primitief in productiecode.
Wat is het standaardformaat voor een bounding box?
GeoJSON en de meeste moderne APIs gebruiken de volgorde [west, south, east, north], ook geschreven als [minLng, minLat, maxLng, maxLat]. Dit is het formaat dat je standaard moet gebruiken. Sommige oudere APIs en CSV-exports gebruiken [south, west, north, east] (dus lat eerst) en een paar gebruiken vier aparte velden. Controleer altijd de docs van de specifieke API of het formaat. De meest voorkomende fout is het omdraaien van de lat/lng-volgorde, waardoor de box op de verkeerde kant van de planeet terechtkomt.
Wat is het verschil tussen een bounding box en een oriented bounding box?
Een gewone bounding box is as-uitgelijnd: zijn zijden lopen langs de assen van breedtegraad en lengtegraad. Een oriented bounding box (OBB, gebruikelijk in computer vision en game engines) is gedraaid om het feature nauwer te omvatten, wat een kleiner oppervlak geeft maar complexere wiskunde vereist. In ruimtelijk werk zijn as-uitgelijnde bboxes de standaard omdat ze netjes indexeren in ruimtelijke databases, in het tile-grid passen en triviaal te testen zijn op overlap. Oriented bounding boxes verschijnen in 3D-rendering, objectdetectie en physics-engines.
Hoe gebruik ik een bounding box om een geocoding-API te filteren?
Geef de bbox mee als viewport-biasparameter. In de MapAtlas Geocoding API stuur je `boundary.rect.min_lon`, `boundary.rect.min_lat`, `boundary.rect.max_lon`, `boundary.rect.max_lat` mee en de geocoder rankt resultaten binnen dat gebied hoger dan resultaten erbuiten. Dit is essentieel voor autocomplete in een kaart: naarmate de gebruiker scrollt, update je de bbox zodat suggesties overeenkomen met wat ze zien. Zonder bbox-bias retourneert een autocomplete voor 'Springfield' de meest populaire Springfield wereldwijd, wat zelden is wat de gebruiker bedoelt.

