json - d3 : us states in topojson format filesize is way too large

标签 json d3.js topojson

我正在我的网页中渲染两张 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 建议之外,您还可以使用 MapshaperQGIS提取州边界。这两者也是免费的。要仅获取美国各州,请执行以下步骤:

  • 将 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/

相关文章:

javascript - d3.js:如何用空白值的颜色填充单元格?

javascript - D3.js 加载完成后缩放特定路径

javascript - 如何绑定(bind)数据到对应的D3.js map 元素?

android - 如何在没有 GSON 的情况下从 url 或 android 中的 restful 服务解析巨大的 JSON 数据

json - 将 JSON 对象保存到 file.JSON

javascript - 鼠标悬停在 d3.js 中无法通过将其附加到圆圈来工作

json - d3.js Json/数组中的标签云大小?

python - 如何在 Altair 中使用 GeoJSON 数据制作 map ?

javascript - 如何使用javascript访问对象数组

jquery - $.getJSON 返回 “undefined” 或 [object Object] [object Object]