Différence entre GeoJSON et TopoJSON

Quelle est la différence entre GeoJSON et TopoJSON et quand utiliserais-je l’un sur l’autre?

La description de TopoJSON sur GitHub implique que les fichiers TopoJSON sont 80% plus petits. Alors pourquoi ne pas simplement utiliser TopoJSON tout le temps?

    Si vous vous souciez de la taille du fichier ou de la topologie, utilisez TopoJSON. Si vous ne vous souciez pas non plus, utilisez GeoJSON pour plus de simplicité.

    Le principal avantage de TopoJSON est la taille. En éliminant la redondance et en utilisant un encodage en nombres entiers à précision fixe plus efficace, les fichiers TopoJSON sont souvent d’un ordre de grandeur inférieur aux fichiers GeoJSON. L’avantage secondaire des fichiers TopoJSON est que l’encodage de la topologie a des applications utiles, telles que la simplification préservant la topologie (similaire à MapShaper ) et la génération automatique de maillage (comme dans les limites d’état dans cet exemple choropleth ).

    Ces avantages ont un coût: un format de fichier plus complexe. En JavaScript, par exemple, vous utiliseriez généralement la bibliothèque client TopoJSON pour convertir TopoJSON en GeoJSON pour une utilisation avec des outils standard tels que d3.geoPath . (En Python, vous pouvez utiliser topojson.py .) En outre, le format entier de TopoJSON nécessite des coordonnées de quantification, ce qui signifie qu’il peut introduire une erreur d’arrondi si vous ne faites pas attention. (Voir la documentation de topojson -q .)

    Pour la manipulation des géomésortinges côté serveur qui ne nécessite pas de topologie, GeoJSON est probablement le choix le plus simple. Sinon, si vous avez besoin d’une topologie ou souhaitez envoyer la géomésortinge sur le câble à un client, utilisez TopoJSON.

    TopoJSON est idéal pour les fonctionnalités ordonnées qui se “claquent” les unes aux autres, comme les régions administratives, mais ne permet pas d’obtenir des données plus compliquées ou plus organiques. Si vos données sont simplement des points, alors TopoJSON ne vous aide pas du tout.

    Cela dépend de nombreuses considérations. Parmi eux sont les suivants:

    1) La nature (modèle de données) de la fonctionnalité ou des fonctionnalités que vous souhaitez représenter 2) Tous les atsortingbuts que vous souhaitez associer à ces fonctionnalités 3) Comment vous souhaitez que ces fonctionnalités se comportent sur la page (statique vs dynamic)

    Cependant, c’est une question difficile à répondre dans l’abstrait. En ce qui concerne certaines spécificités, si vous avez une couverture polygonale contiguë ou une autre situation où les entités partagent des limites, le modèle de topojson vous permet d’exploiter la redondance et de la prendre en compte dans le modèle.

    Lisez la documentation, examinez des exemples (par exemple, bl.ocks.org), puis récupérez des données et représentez-les à la fois dans geojson et topojson et créez vos propres visualisations.