GeoJSON和TopoJSON的区别

GeoJSON和TopoJSON有什么区别,我什么时候可以使用它们?

GitHub上的TopoJSON的描述意味着TopoJSON文件小了80%。 那么为什么不直接使用TopoJSON呢?

如果您关心文件大小或拓扑,那么使用TopoJSON。 如果你不在乎,那么为了简单起见,使用GeoJSON。

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

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

对于不需要拓扑的几何体的服务器端操作,GeoJSON可能是更简单的select。 否则,如果您需要拓扑或想要通过电线将几何graphics发送到客户端,则使用TopoJSON。

TopoJSON是理想的整洁function,可以像pipe理区域一样“互相捕捉”,但不能帮助处理更多杂乱或有机的数据。 如果你的数据只是点,那么TopoJSON根本就没有帮助。

这取决于许多考虑因素。 其中包括以下内容:

1)您想要表示的一个或多个function的性质(数据模型)2)您希望与这些function相关联的任何属性3)您希望这些function在页面上的行为方式(静态vsdynamic)

但是,这是一个很难回答的问题。 关于一些细节,如果你有一个连续的多边形覆盖或另一个特征是共享边界的情况,topojson的模型允许你利用冗余和因素到模型中。

阅读文档,剖析示例(例如bl.ocks.org),然后获取一些数据并在geojson和topojson中表示它们,并创build自己的可视化对象。