我正在我的网页中渲染两张 map ,并使用 d3 来完成它。一张是一张标有所有国家边界的世界地图。我正在使用的文件是以下版本: https://raw.github.com/mbostock/topojson/master/examples/world-110m.json
第二张 map 是美国各州的 map 。我需要的只是州边界(而不是县)。我正在使用此文件的修改版本: http://bl.ocks.org/mbostock/raw/4090846/us.json
我已经修改了这两个文件,以包含用于工具提示的名称和两个字母的州或国家/地区代码。
world-110m.json 文件大约 100kb。 states.json 文件远超过 650kb。谁能解释这是为什么吗?而且,更重要的是,我可以从 states.json 文件中删除哪些内容以大幅减小其大小,同时仍然有效?
这两个文件都为每个节点定义了弧,并且在文件末尾附近有一个“弧”节点。各州的弧节点是巨大的。我感觉 states json 文件包含我不需要的所有县边界。
最佳答案
除了 rysloan 建议之外,您还可以使用 Mapshaper和 QGIS提取州边界。这两者也是免费的。要仅获取美国各州,请执行以下步骤:
- 将 us.json 文件上传到 Mapshaper;
- 将其导出为形状文件;
- 解压压缩包,您会发现 Mapshaper 已经分割了您的 topojson 为 3 个形状文件,其中之一是 us-states;
- 将 us-states.shp 和 us-states.shx 上传到 Mapshaper(您必须先刷新 Mapshaper 以删除原始 us.json 文件);和
- 另存为 topojson,您将获得一个大小为 58kb 的文件。
关于json - d3 : us states in topojson format filesize is way too large,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19941975/