97

GeoJSON 和 TopoJSON 有什么区别,我什么时候可以使用其中一个?

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

4

3 回答 3

155

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

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

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

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

于 2013-02-08T03:41:49.600 回答
12

TopoJSON 非常适用于相互“对齐”的整洁特征,例如行政区域,但对更混乱或有机的数据没有帮助。如果您的数据只是点,那么 TopoJSON 根本没有帮助。

于 2013-02-07T05:57:10.263 回答
3

这取决于许多考虑。其中包括:

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

然而,这是一个很难抽象地回答的问题。关于某些细节,如果您有一个连续的多边形覆盖或其他特征共享边界的情况,topojson 的模型允许您利用冗余并将其纳入模型。

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

于 2013-02-07T14:52:36.730 回答