¿Cuál es la diferencia entre GeoJSON y TopoJSON y cuándo usaría uno sobre el otro?
La descripción de TopoJSON en GitHub implica que los archivos TopoJSON son un 80% más pequeños. Entonces, ¿por qué no usar TopoJSON todo el tiempo?
¿Cuál es la diferencia entre GeoJSON y TopoJSON y cuándo usaría uno sobre el otro?
La descripción de TopoJSON en GitHub implica que los archivos TopoJSON son un 80% más pequeños. Entonces, ¿por qué no usar TopoJSON todo el tiempo?
Respuestas:
Si le importa el tamaño del archivo o la topología, utilice TopoJSON. Si no le importa ninguno de los dos, utilice GeoJSON por simplicidad.
La principal ventaja de TopoJSON es el tamaño. Al eliminar la redundancia y utilizar una codificación de coordenadas entera de precisión fija más eficiente, los archivos TopoJSON suelen ser un orden de magnitud más pequeños que los archivos GeoJSON. La ventaja secundaria de los archivos TopoJSON es que la codificación de la topología tiene aplicaciones útiles, como la simplificación que conserva la topología (similar a MapShaper ) y la generación automática de mallas (como en los límites de estado-estado en este ejemplo de coropletas ).
Estas ventajas tienen un costo: un formato de archivo más complejo. En JavaScript, por ejemplo, normalmente usaría la biblioteca cliente TopoJSON para convertir TopoJSON a GeoJSON para usar con herramientas estándar como d3.geoPath . (En Python, puede usar topojson.py ). Además, el formato entero de TopoJSON requiere coordenadas de cuantificación, lo que significa que puede introducir un error de redondeo si no tiene cuidado. (Consulte la documentación para topojson -q
.)
Para la manipulación de geometrías del lado del servidor que no requiere topología, entonces GeoJSON es probablemente la opción más simple. De lo contrario, si necesita topología o desea enviar la geometría a través del cable a un cliente, utilice TopoJSON.
TopoJSON es ideal para funciones ordenadas que "encajan" entre sí, como regiones administrativas, pero no ayuda con datos más desordenados u orgánicos. Si sus datos son simplemente puntos, TopoJSON no es de ninguna ayuda.
Depende de muchas consideraciones. Entre ellos se encuentran los siguientes:
1) La naturaleza (modelo de datos) de la característica o características que le gustaría representar 2) Cualquier atributo que le gustaría tener asociado con esas características 3) Cómo le gustaría que estas características se comporten en la página (estático vs. dinámica)
Sin embargo, esta es una pregunta difícil de responder en abstracto. Con respecto a algunos detalles, si tiene una cobertura de polígono contiguo u otra situación en la que las entidades comparten límites, el modelo de topojson le permite explotar la redundancia y factorizar eso en el modelo.
Lea la documentación, diseccione ejemplos (por ejemplo, bl.ocks.org) y luego obtenga algunos datos y represéntelos en geojson y topojson y cree sus propias visualizaciones.