TopoJSON es una extensión de GeoJSON que tiene en cuenta la topología. Utiliza la codificación de arcos compartidos (los límites entre polígonos se almacenan una sola vez) y la cuantización entera de las coordenadas, de modo que el archivo resultante es un 60-80 % más pequeño que el GeoJSON equivalente. Es la entrada estándar de D3.js, Mapshaper y Observable; ideal para mapas coropléticos interactivos y atlas web.
Características principales
Acerca del formato TopoJSON
TopoJSON lo ideó Mike Bostock, autor de D3.js, para resolver un problema sencillo: en GeoJSON los polígonos vecinos guardan dos veces la frontera común. TopoJSON traslada todas las líneas a un array común de arcos al que los objetos hacen referencia. Además, las coordenadas se redondean a una malla entera y se escriben como incrementos, con lo que el archivo adelgaza notablemente.
Se recurre a este formato para gráficos web y analítica: coropletas en D3, atlas interactivos, mapas de fronteras en Observable o capas ligeras para aplicaciones sin conexión. El segundo motivo es la simplificación: al generalizar, las fronteras comunes se mueven a la vez y no aparecen huecos entre barrios vecinos.
El resultado es un único documento: cada capa se convierte en un objeto independiente dentro de él —roads, buildings, water, etc.—, y los atributos de los objetos se conservan. Las coordenadas van en WGS84, con hasta 100 000 objetos por capa. La topología la construye nuestro propio código, sin dependencias externas.
El precio de la compacidad es el redondeo de las coordenadas. El paso de la malla depende del tamaño del área: para un barrio es del orden del metro; para un país, de cientos de metros. En un mapa web resulta imperceptible, pero para mediciones precisas use GeoJSON o GeoPackage.
Programas para abrir archivos TopoJSON
Los siguientes programas y aplicaciones pueden abrir, editar y procesar archivos TopoJSON (Topology-Aware JSON) (.topojson) exportados desde OSM2CDR:
Format specifications
- Open standard
- 2D only
- Lossless (no quality loss)
- Stores feature attributes
- Output: 1 file
- TopoJSON (open spec). Topologically encoded GeoJSON: shared borders stored once, file size 30-80% smaller. Used by D3.js.
Quién usa los mapas TopoJSON
Cómo exportar a TopoJSON
Cómo abrir tras la exportación
- D3.js — incluya topojson-client y despliegue la capa que necesite: topojson.feature(topology, topology.objects.buildings) y a continuación el habitual d3.geoPath.
- Mapshaper — arrastre el archivo a mapshaper.org: verá los objetos y los atributos, y allí mismo podrá simplificar y exportar a SHP o GeoJSON.
- QGIS — abre los .topojson como una capa vectorial normal a través de GDAL; resulta cómodo para comprobar la geometría a simple vista.
- Conversión a GeoJSON — topo2geo buildings=buildings.geojson < map.topojson, del paquete topojson-client, o bien ogr2ogr.
- Leaflet y MapLibre — no entienden el formato directamente: conviértalo a GeoJSON en el cliente con la biblioteca topojson-client y sígalo usando como de costumbre.
Mapas populares en TopoJSON
Exportar mapas a TopoJSON (Topology-Aware JSON)
Descarga mapas TopoJSON profesionales desde OpenStreetMap. Generación instantánea, cualquier área.