d3.js - GeoJSON 和 TopoJSON 的区别

标签 d3.js gis geojson topojson

GeoJSON 和 TopoJSON 之间有什么区别?什么时候应该使用其中之一?

description of TopoJSON on GitHub意味着 TopoJSON 文件小了 80%。那么为什么不一直使用 TopoJSON 呢?

最佳答案

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

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

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

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

关于d3.js - GeoJSON 和 TopoJSON 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740705/

相关文章:

javascript - 动态调整 D3 TopoJSON map 上的点大小

javascript - 使用多数组通过 dc.js、d3 和 crossfilter 在散点图上绘制数据

r - 计算R中多边形的经度和纬度范围

r - 计算点与海岸之间的最小距离

python - 删除 geojson 文件中带有 for 循环的元素

javascript - d3 - 节点中需要帮助

javascript - 如何获取svg元素类型

r - 如何在 R 中将二进制栅格聚合为百分比

php - 在 PHP 中解析 GeoJson 字符串

python - 如何在 Django REST Framework 中正确嵌套序列化器?