Estándar GeoJSON Explicado: Domine RFC 7946 para Datos Geoespaciales
En el mundo de los mapas web y los Sistemas de Información Geográfica (GIS), GeoJSON se ha convertido en el lenguaje universal para compartir datos espaciales. Ya sea que use Leaflet, Mapbox o Google Maps, es muy probable que esté interactuando con el RFC 7946, el estándar oficial de GeoJSON.
¿Qué es el RFC 7946 (GeoJSON)?
Publicado en 2016, el RFC 7946 formalizó el formato GeoJSON. Es un formato de intercambio de datos geoespaciales basado en JSON (JavaScript Object Notation). Permite representar geometrías, objetos (features) y colecciones de objetos.
GeoJSON admite los siguientes tipos de geometría:
- Point (Punto): Una única posición (longitud, latitud).
- LineString (Línea): Una serie de puntos conectados.
- Polygon (Polígono): Un área cerrada (el primer y último punto son iguales).
- MultiPoint, MultiLineString, MultiPolygon: Colecciones de los anteriores.
- GeometryCollection: Una mezcla de diferentes tipos de geometría.
Principios Fundamentales de GeoJSON
1. El Sistema de Coordenadas
El RFC 7946 obliga estrictamente al uso del datum WGS 84 (World Geodetic System 1984). Las coordenadas siempre se ordenan como [longitud, latitud]. Advertencia: ¡Muchos desarrolladores cometen el error de usar [latitud, longitud], lo que situará sus datos en la parte equivocada del mundo!
2. El Objeto Feature
Un objeto Feature de GeoJSON contiene una geometría y metadatos adicionales (propiedades).
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [102.0, 0.5]
},
"properties": {
"name": "Islas Dinagat"
}
}
3. FeatureCollection
La mayoría de los archivos GeoJSON son objetos FeatureCollection, lo que permite agrupar múltiples objetos en un solo archivo.
Escenarios de Aplicación Práctica
Mapas Web
GeoJSON es el formato nativo para la mayoría de las librerías modernas de mapas web. Es fácil de cargar vía AJAX y permite aplicar estilos dinámicamente basados en el objeto properties.
Almacenamiento en Bases de Datos
Las bases de datos modernas como PostgreSQL (con PostGIS) y MongoDB tienen soporte nativo para GeoJSON, permitiendo realizar consultas espaciales (ej., "Encontrar todos los puntos en un radio de 5km").
Visualización de Datos
Herramientas como D3.js pueden tomar datos GeoJSON y renderizarlos como mapas SVG interactivos, perfectos para cuadros de mando e infografías.
GeoJSON vs. KML vs. Shapefile
| Característica | GeoJSON | KML | Shapefile |
|---|---|---|---|
| Formato | JSON | XML | Binario (Múltiples archivos) |
| Amigable con Web | Excelente | Moderado | Pobre |
| Estilos | vía propiedades | Integrado (XML) | Separado (.qml/.sld) |
| Legible por Humanos | Sí | Sí | No |
FAQ
P: ¿Por qué es [longitud, latitud] en lugar de [latitud, longitud]?
R: El RFC 7946 sigue el sistema estándar de coordenadas cartesianas [x, y], donde la longitud corresponde al eje X y la latitud al eje Y.
P: ¿Puedo usar diferentes sistemas de coordenadas (CRS)?
R: Mientras que versiones antiguas de GeoJSON permitían CRS personalizados, el RFC 7946 requiere estrictamente WGS 84. Si sus datos están en otro sistema (como UTM), debe proyectarlos a WGS 84 antes de compartirlos como GeoJSON.
P: ¿Cómo manejo conjuntos de datos grandes?
A: Para conjuntos de datos espaciales muy grandes, GeoJSON puede volverse lento. Considere usar TopoJSON (que reduce el tamaño compartiendo topología) o Vector Tiles (MVT) para mapas de producción.
Herramientas Relacionadas
- Formateador JSON - Esencial para validar y limpiar sus estructuras GeoJSON.
- Codificador/Decodificador de URL - Útil al pasar datos GeoJSON como parámetros de URL.
- Generador de UUID - A menudo usado para generar IDs únicos para objetos GeoJSON.