Qual é a diferença entre GeoJSON e TopoJSON e quando eu usaria um em vez do outro?
A descrição do TopoJSON no GitHub implica que os arquivos TopoJSON são 80% menores. Então, por que não usar TopoJSON o tempo todo?
Qual é a diferença entre GeoJSON e TopoJSON e quando eu usaria um em vez do outro?
A descrição do TopoJSON no GitHub implica que os arquivos TopoJSON são 80% menores. Então, por que não usar TopoJSON o tempo todo?
Respostas:
Se você se preocupa com o tamanho ou topologia do arquivo, use o TopoJSON. Se você não se importa com nenhum dos dois, use o GeoJSON para simplificar.
A principal vantagem do TopoJSON é o tamanho. Ao eliminar a redundância e usar uma codificação de coordenadas inteiras de precisão fixa mais eficiente, os arquivos TopoJSON costumam ser uma ordem de magnitude menores do que os arquivos GeoJSON. A vantagem secundária dos arquivos TopoJSON é que a codificação da topologia tem aplicativos úteis, como simplificação de preservação de topologia (semelhante ao MapShaper ) e geração automática de malha (como nos limites de estado-estado neste exemplo de coroplet ).
Essas vantagens têm um custo: um formato de arquivo mais complexo. Em JavaScript, por exemplo, você normalmente usaria a biblioteca cliente TopoJSON para converter TopoJSON em GeoJSON para uso com ferramentas padrão como d3.geoPath . (Em Python, você pode usar topojson.py .) Além disso, o formato inteiro de TopoJSON requer coordenadas de quantização, o que significa que pode introduzir erro de arredondamento se você não tomar cuidado. (Consulte a documentação para topojson -q
.)
Para manipulação de geometrias do lado do servidor que não requer topologia, o GeoJSON é provavelmente a escolha mais simples. Caso contrário, se você precisar de topologia ou quiser enviar a geometria através do fio para um cliente, use TopoJSON.
TopoJSON é ideal para recursos organizados que "se encaixam" uns nos outros, como regiões administrativas, mas não ajuda com dados mais confusos ou orgânicos. Se seus dados são simplesmente pontos, o TopoJSON não ajuda em nada.
Depende de muitas considerações. Entre eles estão os seguintes:
1) A natureza (modelo de dados) do recurso ou recursos que você gostaria de representar 2) Quaisquer atributos que você gostaria de ter associado a esses recursos 3) Como você gostaria que esses recursos se comportassem na página (estático vs. dinâmico)
No entanto, essa é uma pergunta difícil de responder em abstrato. Com relação a alguns detalhes, se você tiver uma cobertura de polígono contígua ou outra situação onde os recursos estão compartilhando limites, o modelo de topojson permite explorar a redundância e fatorá-la no modelo.
Leia a documentação, analise exemplos (por exemplo, bl.ocks.org) e, em seguida, obtenha alguns dados e represente-os em geojson e topojson e crie suas próprias visualizações.