Un bounding box es el primitivo espacial más simple y útil en cualquier stack de mapas. Son cuatro números que describen un rectángulo en el espacio de latitud y longitud, y aparece en casi todas las llamadas a API, archivos GeoJSON y librerías de mapas que vayas a usar.
Esta guía explica qué es un bounding box, las convenciones de formato que necesitas conocer, los patrones de producción donde demuestra su valor y los errores que pillan a todos los desarrolladores al menos una vez.
La definición
Un bounding box (bbox) es el rectángulo alineado con los ejes más pequeño que contiene una feature o un conjunto de puntos. "Alineado con los ejes" significa que sus lados discurren a lo largo de los ejes de latitud y longitud; el rectángulo no está rotado. El bbox se describe con cuatro números: la longitud oeste, la latitud sur, la longitud este y la latitud norte.
Para París, el bbox municipal oficial es aproximadamente [2.224, 48.8156, 2.4699, 48.9022]. Para la Francia continental es aproximadamente [-5.142, 41.333, 9.560, 51.089]. Para todo el planeta es [-180, -90, 180, 90].
Un bbox siempre son dos esquinas opuestas. No puede describir una forma no rectangular, pero sí puede describir el rectángulo que envuelve cualquier forma, lo cual es suficiente para el filtrado espacial rápido.
La cuestión del formato
Las convenciones de formato para bbox son inconsistentes entre sistemas, y esa inconsistencia es la fuente de la mayoría de los bugs con bbox.
GeoJSON, estándares OGC y la mayoría de las APIs modernas: [oeste, sur, este, norte], equivalentemente [minLng, minLat, maxLng, maxLat]. Longitud primero, latitud segunda, ambas en WGS84.
Algunas librerías de mapas web (objetos LatLngBounds de Leaflet, Mapbox GL): un objeto LatLngBounds con las esquinas _southWest y _northEast. Lat primero, luego lng.
Muchas APIs antiguas y exportaciones CSV: [sur, oeste, norte, este] (lat primero). Lee la especificación.
Servicios de tiles y WMS: bbox en las unidades de la proyección (metros Web Mercator, no lat/lng) cuando la tesela está en EPSG:3857.
La regla defensiva: nunca uses un array de 4 elementos desnudo en tu propio código. Envuélvelo en un objeto tipado con campos con nombre ({ west, south, east, north }) para que el orden sea explícito. Convierte en los límites de la API.
Dónde los bounding boxes demuestran su valor
Un bbox es el filtro espacial más rápido posible. Tres usos clásicos:
Ajustar un mapa a una feature. Cuando el usuario llega a un resultado de búsqueda, llamas a map.fitBounds(bbox) y el mapa hace zoom y pan para mostrar la feature con el relleno apropiado. Todas las librerías de mapas modernas tienen este primitivo.
Filtrar consultas de API por área. Los motores de base de datos y las APIs de búsqueda indexan los bbox de forma muy eficiente. Una consulta como "muéstrame todos los lugares en este viewport" envía el bbox visible al servidor, que usa un índice espacial para devolver solo los registros coincidentes. Esta es la base de la búsqueda basada en viewport.
Sesgar autocompletado y geocoding. Pasa el bbox actual del mapa del usuario como sesgo de viewport. El geocodificador pondera más los resultados dentro del bbox, de modo que escribir "Liberty" dentro del viewport de Nueva York devuelve la Estatua de la Libertad antes que cualquier otro Liberty del mundo.
Un cuarto uso menos obvio: los bbox son la unidad de contabilidad de un sistema de vector tiles. Cada tesela cubre un bbox conocido a un zoom conocido, y el renderizador los compone en el mapa visible.
Qué devuelve una API
La mayoría de las APIs de geocoding devuelven un bbox junto a cada resultado, porque indica tanto el tamaño de la feature coincidente (un bbox de país es enorme, un bbox de edificio es pequeño) como cómo ajustar el mapa. Una respuesta de geocoding para "France" devuelve un bbox a escala nacional; una respuesta para "10 Downing Street" devuelve un bbox a escala de edificio.
Puedes usar el tamaño del bbox devuelto como comprobación de sanidad sobre la precisión. Una consulta que coincide a precisión "country" pero devuelve un bbox del tamaño de un edificio es sospechosa. Una consulta que coincide a precisión "rooftop" pero devuelve un bbox del tamaño de una ciudad está rota.
Bounding boxes que cruzan el antimeridiano
Un gotcha sutil: un bbox que cruza el antimeridiano de 180 grados (por ejemplo, para Rusia, el Pacífico, Fiji) no puede describirse como oeste < este porque rodea el planeta. Las convenciones varían:
- Algunos sistemas dividen ese bbox en dos piezas, una para cada lado del antimeridiano.
- Algunos sistemas permiten
oeste > estee interpretan eso como "dar la vuelta". - GeoJSON permite dar la vuelta pero recomienda dividir para la interoperabilidad.
Para la mayoría de los casos de uso europeos o de un solo país esto nunca se presenta. Si construyes un producto global (rutas aéreas, transporte marítimo, pesca), testea el caso del antimeridiano explícitamente.
Bounding boxes vs polígonos
Un bbox es un rectángulo. Una feature real rara vez es rectangular. El bbox de Francia incluye partes del océano Atlántico y de España. El bbox de Manhattan incluye partes de Nueva Jersey y Queens.
Cuando la aproximación rectangular es suficientemente buena (ajustar un mapa, pre-filtrado rápido), el bbox es la herramienta correcta. Cuando necesitas saber si un punto está realmente dentro de la feature, necesitas matemáticas de punto en polígono sobre la geometría real del límite. Un patrón habitual en producción: filtra por bbox primero (rápido, indexable, elimina el 99% de los registros), luego ejecuta punto en polígono sobre los supervivientes (lento pero preciso). Este enfoque de dos etapas es como funcionan internamente la mayoría de las bases de datos espaciales.
Bounding boxes en visión por computador
Puede que veas "oriented bounding box" mencionado en detección de objetos, robótica o renderizado 3D. Ese es un concepto diferente: un OBB está rotado para ajustarse mejor a una feature que lo que lo haría un box alineado con los ejes. En el trabajo geoespacial, los bbox alineados con los ejes son el estándar porque se indexan limpiamente, encajan en la cuadrícula de tiles y son triviales para probar el solapamiento. Los bbox orientados aparecen cuando necesitas matemáticas de rectángulo rotado, lo cual es raro en mapas pero común en visión por computador.
Cómo usa MapAtlas los bounding boxes
Todos los resultados de la API de Geocoding y la API de Búsqueda devuelven un campo bbox con la extensión de la feature coincidente en orden longitud/latitud WGS84, exactamente el formato que esperan GeoJSON y las librerías de mapas modernas. Puedes pasar un parámetro boundary.rect.* para sesgar el geocoding a un viewport, y la API de Isócronas devuelve sus polígonos de tiempo de viaje con un bbox envolvente para que puedas ajustar el mapa sin calcularlo tú mismo.
Para una introducción práctica a GeoJSON y cómo los bbox encajan en el panorama más amplio de los datos espaciales, consulta Qué es GeoJSON y Qué es un geocode.
Preguntas frecuentes
¿Qué es un bounding box?
Un bounding box (abreviado frecuentemente como bbox) es el rectángulo alineado con los ejes más pequeño que contiene una feature geográfica o un conjunto de puntos. Se describe con cuatro números: la longitud mínima y máxima, y la latitud mínima y máxima. Los bounding boxes están en todas partes del mundo de los mapas: para ajustar un mapa a una feature, filtrar consultas de base de datos por área, definir la extensión de una tesela y sesgar los resultados de geocoding a una región. Son el primitivo espacial más simple y rápido en el código de producción.
¿Cuál es el formato estándar de un bounding box?
GeoJSON y la mayoría de las APIs modernas usan el orden [oeste, sur, este, norte], también escrito como [minLng, minLat, maxLng, maxLat]. Este es el formato que debes usar por defecto. Algunas APIs antiguas y exportaciones CSV usan [sur, oeste, norte, este] (es decir, lat primero), y unas pocas usan cuatro campos separados. Siempre revisa la documentación de la API o formato concreto. El error más común es mezclar el orden de lat/lng, lo que sitúa el box en el lado equivocado del planeta.
¿Cuál es la diferencia entre un bounding box y un oriented bounding box?
Un bounding box normal está alineado con los ejes: sus lados discurren a lo largo de los ejes de latitud y longitud. Un oriented bounding box (OBB, común en visión por computador y motores de juegos) está rotado para ajustarse mejor a la feature, lo que da un área menor pero matemáticas más complejas. En el trabajo geoespacial, los bbox alineados con los ejes son el estándar porque se indexan limpiamente en bases de datos espaciales, encajan en la cuadrícula de tiles y son trivialmente verificables para solapamiento. Los oriented bounding boxes aparecen en renderizado 3D, detección de objetos y motores de física.
¿Cómo uso un bounding box para filtrar una API de geocoding?
Pasa el bbox como parámetro de sesgo de viewport. En la API de Geocoding de MapAtlas envías `boundary.rect.min_lon`, `boundary.rect.min_lat`, `boundary.rect.max_lon`, `boundary.rect.max_lat`, y el geocodificador pondera más alto los resultados dentro de esa área que los de fuera. Esto es esencial para el autocompletado dentro de un mapa: a medida que el usuario hace pan, actualizas el bbox para que las sugerencias coincidan con lo que está mirando. Sin un sesgo de bbox, un autocompletado para 'Springfield' devuelve el Springfield con mayor popularidad global, que rara vez es el que el usuario busca.

