GeoJSON和TopoJSON有什么区别,何时可以在另一个之上使用?
该TopoJSON的GitHub上的描述意味着TopoJSON文件小80%。那么,为什么不一直使用TopoJSON?
GeoJSON和TopoJSON有什么区别,何时可以在另一个之上使用?
该TopoJSON的GitHub上的描述意味着TopoJSON文件小80%。那么,为什么不一直使用TopoJSON?
Answers:
如果您关心文件的大小或拓扑,请使用TopoJSON。如果您都不在乎,则为简单起见,请使用GeoJSON。
TopoJSON的主要优点是大小。通过消除冗余并使用更有效的坐标固定精度整数编码,TopoJSON文件通常比GeoJSON文件小一个数量级。TopoJSON文件的第二个优点是对拓扑进行编码具有有用的应用程序,例如拓扑保留简化(类似于MapShaper)和自动网格生成(如本示例中的状态边界))。
这些优点是有代价的:更复杂的文件格式。例如,在JavaScript中,通常会使用TopoJSON客户端库将TopoJSON转换为GeoJSON,以与d3.geoPath等标准工具一起使用。(在Python中,您可以使用topojson.py。)此外,TopoJSON的整数格式需要对坐标进行量化,这意味着如果您不小心会导致舍入误差。(请参阅有关文档topojson -q
。)
对于不需要拓扑的几何的服务器端操作,那么GeoJSON可能是更简单的选择。否则,如果您需要拓扑或要通过导线将几何图形发送到客户端,请使用TopoJSON。
TopoJSON非常适合用于相互“捕捉”的整洁功能(例如管理区域),但对更多混乱或自然数据却无济于事。如果您的数据仅仅是点,那么TopoJSON根本没有帮助。
这取决于许多考虑。其中包括:
1)您要表示的一个或多个功能的性质(数据模型)2)您希望与这些功能相关联的任何属性3)您希望这些功能在页面上如何表现(静态与动态)
但是,这是一个很难回答的抽象问题。关于某些细节,如果您具有连续的多边形覆盖范围或要素共享边界的其他情况,则topojson的模型可让您利用冗余并将其分解为模型。
阅读文档,剖析示例(例如bl.ocks.org),然后获取一些数据并将其表示在geojson和topojson中,并创建自己的可视化文件。