Qual è la differenza tra GeoJSON e TopoJSON e quando dovrei usarne uno sull'altro?
La descrizione di TopoJSON su GitHub implica che i file TopoJSON sono più piccoli dell'80%. Allora perché non usare TopoJSON tutto il tempo?
Qual è la differenza tra GeoJSON e TopoJSON e quando dovrei usarne uno sull'altro?
La descrizione di TopoJSON su GitHub implica che i file TopoJSON sono più piccoli dell'80%. Allora perché non usare TopoJSON tutto il tempo?
Risposte:
Se ti interessano le dimensioni dei file o la topologia, usa TopoJSON. Se non ti interessa nemmeno, usa GeoJSON per semplicità.
Il vantaggio principale di TopoJSON è la dimensione. Eliminando la ridondanza e utilizzando una codifica intera a precisione fissa più efficiente delle coordinate, i file TopoJSON sono spesso un ordine di grandezza più piccoli dei file GeoJSON. Il vantaggio secondario dei file TopoJSON è che la codifica della topologia ha applicazioni utili, come la semplificazione della conservazione della topologia (simile a MapShaper ) e la generazione automatica di mesh (come nei confini dello stato in questo esempio coropletico ).
Questi vantaggi hanno un costo: un formato di file più complesso. In JavaScript, ad esempio, in genere si utilizza la libreria client TopoJSON per convertire TopoJSON in GeoJSON da utilizzare con strumenti standard come d3.geoPath . (In Python, puoi usare topojson.py .) Inoltre, il formato intero di TopoJSON richiede coordinate di quantizzazione, il che significa che può introdurre errori di arrotondamento se non stai attento. (Vedere la documentazione per topojson -q
.)
Per la manipolazione lato server di geometrie che non richiede topologia, GeoJSON è probabilmente la scelta più semplice. In caso contrario, se è necessaria la topologia o si desidera inviare la geometria in rete a un client, utilizzare TopoJSON.
TopoJSON è ideale per funzioni ordinate che si "agganciano" l'una all'altra, come le regioni amministrative, ma non aiuta con dati più disordinati o organici. Se i tuoi dati sono semplicemente punti, TopoJSON non è affatto d'aiuto.
Dipende da molte considerazioni. Tra questi ci sono i seguenti:
1) La natura (modello di dati) dell'elemento o degli elementi che desideri rappresentare 2) Qualsiasi attributo che desideri associare a tali elementi 3) Come desideri che si comportino questi elementi sulla pagina (statico e dinamico)
Tuttavia, questa è una domanda difficile a cui rispondere in astratto. Per quanto riguarda alcune specifiche, se hai una copertura poligonale contigua o un'altra situazione in cui le caratteristiche condividono i confini, il modello di topojson ti consente di sfruttare la ridondanza e tenerla nel modello.
Leggi la documentazione, analizza esempi (ad esempio bl.ocks.org), quindi ottieni alcuni dati e rappresentali sia in geojson che in topojson e crea le tue visualizzazioni.