将 Big GeoJSON 转换为 topoJSON

Convert Big GeoJSON into topoJSON

我有 a GeoJSON file 大约 1.4GB,由于文件大小 (?),命令行工具不起作用。我使用 topojson 命令工具,例如:

topojson {{ input file }} >> {{ output file }}

Web工具也有同样的问题(浏览器直接挂了)。

转换那个巨大的 GeoJSON 文件的最佳方法是什么?

工具

使用 Topojson command line 应该可以正常工作。 API 短小精悍,快点看完。

你的命令

topojson input.json >> output.json # what does `>>` ?

topojson manual 告诉我们使用 >,而不是 >>,这意味着 append to the output file。所以我想知道这是否是错误。

简单转换

topojson input.json > output.json # convert from geo to topojson.

此命令以相同的质量保留来自 geojson 输入的所有数据,并将生成一个 +250MB 的 topojson 文件。当在客户端通过 d3js 投影时,d3.topojson 将尝试将其转换回 geojson(1.4GB!),以便 d3 可以使用它在您的浏览器中生成接近 1GB 的 svg。这既是自杀行为(工作流将崩溃)也是毫无意义的:topojson 旨在通过简化 gis 数据以适应 Web 浏览器的较低功能和需求来减轻您的生活。高清屏幕是1980*1280,gis数据远不止于此,需要简化。

简化命令

使用 topojson 命令行简化您庞大的 geojson 数据。一个常见的简化是通过 -q 1e4:

  topojson -q 1e4 \
      -o out.json \
      -- input.geojson

因此输出文件将具有 10.000 伪像素质量,也就是比您的输入低很多,但对于客户端数据可视化来说已经足够了,并且大约或小于 1MB。