GeoJSON和TopoJSON之间的区别

Luk*_*uke 83 gis geojson d3.js topojson

GeoJSON和TopoJSON之间的区别是什么?我何时使用另一个?

GitHub上TopoJSON描述意味着TopoJSON文件缩小了80%.那么为什么不一直只使用TopoJSON呢?

mbo*_*ock 142

如果您关心文件大小或拓扑,请使用TopoJSON.如果你不关心任何一个,那么为了简单起见使用GeoJSON.

TopoJSON的主要优点是尺寸.通过消除冗余并使用更有效的固定精度整数坐标编码,TopoJSON文件通常比GeoJSON文件小一个数量级.TopoJSON文件的第二个优点是对拓扑进行编码具有有用的应用程序,例如拓扑保留简化(类似于MapShaper)和自动网格生成(如本例中的状态边界等等).

这些优点需要付出代价:更复杂的文件格式.例如,在JavaScript中,您通常使用TopoJSON客户端库将TopoJSON转换为GeoJSON,以便与标准工具(如d3.geoPath)一起使用.(在Python中,你可以使用topojson.py.)另外,TopoJSON的整数格式需要量化坐标,这意味着如果你不小心它会引入舍入错误.(参见文档topojson -q.)

对于不需要拓扑的几何的服务器端操作,GeoJSON可能是更简单的选择.否则,如果您需要拓扑或想要通过线路将几何图形发送到客户端,请使用TopoJSON.

  • 虽然我确实记得阅读"共享线段",但我仍然认为"topo"代表"地形",但事实并非如此.这里有一篇关于"拓扑"和"地形"之间区别的好读物(前者是topojson中"topo"的起源)](http://geospatial-solutions.com/topology-is-not-topography/) - 我将不得不阅读迈克的文章[这里关于推断拓扑](http://bost.ocks.org/mike/topology/) (2认同)

sgi*_*ies 9

TopoJSON非常适合与管理区域相互"快速"捕捉的整洁功能,但对于更混乱或有机数据无济于事.如果您的数据只是点数,那么TopoJSON根本就没有帮助.

  • 即使没有共享拓扑,TopoJSON的固定精度整数编码也可以比GeoJSON的浮点更高效. (21认同)
  • 真正.我错了.我会删除我的答案,但我们会失去你的宝贵意见! (13认同)