GeoJSON
GeoJSON es un formato de intercambio de datos espaciales basado en JSON (JavaScript Object Notation). Ha sido adoptado ampliamente en el ámbito de los Sistemas de Información Geográfica debido a su simplicidad, compatibilidad con aplicaciones web y facilidad de lectura tanto por personas como por máquinas.
Especificacion: https://datatracker.ietf.org/doc/html/rfc7946 o https://geojson.org/
El estándar GeoJSON permite representar:
-
Objetos geométricos: puntos, líneas, polígonos, y sus variantes múltiples.
-
Entidades geográficas (Features) con atributos asociados.
-
Colecciones de entidades (FeatureCollection).
GeoJSON trabaja exclusivamente en coordenadas WGS84 (EPSG:4326), usando el orden [longitud, latitud], lo cual es especialmente relevante para evitar errores comunes.
Estructura Básica de GeoJSON
Todo documento GeoJSON tiene uno de varios tipos principales. El más sencillo es un objeto geométrico.
Point
{
"type": "Point",
"coordinates": [-0.127758, 51.507351]
}
Interpretación:
-
type: identifica el tipo de geometría.
-
coordinates: un array(matriz) con [longitud, latitud].
MultiPoint
{
"type": "MultiPoint",
"coordinates": [
[-3.70379, 40.41678],
[2.35222, 48.85661]
]
}
LineString
Representación de una ruta simple:
{
"type": "LineString",
"coordinates": [
[-3.70379, 40.41678],
[-0.127758, 51.507351],
[2.35222, 48.85661]
]
}
- coordinates: un array de puntos.
Polygon
Representa un área. El primer anillo es el contorno exterior; los siguientes, posibles agujeros internos.
{
"type": "Polygon",
"coordinates": [
[
[0, 0],
[3, 0],
[3, 3],
[0, 3],
[0, 0]
]
]
}
- coordinates: un array de lineas. Las lineas deben ser cerradas
Ejemplo con un agujero interior:
{
"type": "Polygon",
"coordinates": [
[
[0, 0], [6, 0], [6, 6], [0, 6], [0, 0]
],
[
[2, 2], [4, 2], [4, 4], [2, 4], [2, 2]
]
]
}
Entidades (Features) y Colecciones (FeatureCollection)
Los datos no se componen únicamente de geometrías. Necesitamos atributos asociados a cada objeto espacial. Para ello se emplea el tipo Feature.
Feature con propiedades
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-74.006, 40.7128]
},
"properties": {
"nombre": "Nueva York",
"poblacion": 8804190,
"pais": "Estados Unidos"
}
}
Componentes:
-
geometry: el objeto geométrico.
-
properties: un diccionario con atributos descriptivos.
FeatureCollection
Las bases de datos geográficas suelen agrupar múltiples entidades.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-3.70379, 40.41678] },
"properties": { "nombre": "Madrid" }
},
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [2.35222, 48.85661] },
"properties": { "nombre": "París" }
}
]
}
Consideraciones de Coordinadas y Sistemas de Referencia
Según la especificación oficial, GeoJSON debe emplear WGS84 (EPSG:4326) con coordenadas en el orden:
[longitud, latitud] → [x, y]
Errores comunes:
-
Invertir latitud y longitud.
-
Asumir que GeoJSON puede incluir otros CRS; en la práctica, se considera deprecado.
Tip
Cuando se importen datos de otras fuentes, es esencial verificar el sistema de referencia y reproyectar si es necesario antes de exportar a GeoJSON.