d3:topojson格式的美国州文件太大了

d3:topojson格式的美国州文件太大了,json,d3.js,topojson,Json,D3.js,Topojson,我在我的网页上绘制了两张地图,我用d3来做。一种是一张代表所有国家边界的世界地图。我使用的文件是以下内容的一个版本: 第二张地图是美国各州的地图。我所需要的只是国家边界(不是县)。我正在使用此文件的修改版本: 我修改了这两个文件,以包含名称和两个字母(州或国家代码),用于工具提示 world-110m.json文件约为100kb。states.json文件的大小远远超过650kb。有人能解释为什么会这样吗?而且,更重要的是,我可以从states.json文件中删除哪些内容,以便在仍然有效的情

我在我的网页上绘制了两张地图,我用d3来做。一种是一张代表所有国家边界的世界地图。我使用的文件是以下内容的一个版本:

第二张地图是美国各州的地图。我所需要的只是国家边界(不是县)。我正在使用此文件的修改版本:

我修改了这两个文件,以包含名称和两个字母(州或国家代码),用于工具提示

world-110m.json文件约为100kb。states.json文件的大小远远超过650kb。有人能解释为什么会这样吗?而且,更重要的是,我可以从states.json文件中删除哪些内容,以便在仍然有效的情况下大幅减小其大小


这两个文件都为每个节点定义了圆弧,并在文件末尾附近定义了一个“圆弧”节点。各州的弧节点是巨大的。我感觉州json文件包含我不需要的所有县边界。

如果州json文件仍然包含:

objects:{"counties..." 
那么你的文件中仍然有县边界。在使用文件之前,您需要对其进行一些预处理。您可以使用javascript删除“countries”属性(下划线是一个很好的对象操作库,请参见uz.omit)。其他选项包括使用一些gis来溶解县多边形。PostGIS和R将是免费的两种方式(请参见PostGIS中的ST_UNION或R的maptools库中的unionSpatialPolygons)


至于缩小世界边界地图,我不太确定。看起来它的骨头像是光秃秃的

如果您的状态json文件仍然包含:

objects:{"counties..." 
那么你的文件中仍然有县边界。在使用文件之前,您需要对其进行一些预处理。您可以使用javascript删除“countries”属性(下划线是一个很好的对象操作库,请参见uz.omit)。其他选项包括使用一些gis来溶解县多边形。PostGIS和R将是免费的两种方式(请参见PostGIS中的ST_UNION或R的maptools库中的unionSpatialPolygons)


至于缩小世界边界地图,我不太确定。看起来它的骨头像是光秃秃的

除了rysloan建议之外,您还可以使用和提取州边界。这两个都是免费的。要仅获取美国各州的信息,请执行以下步骤:

  • 将us.json文件上传至Mapshaper
  • 将其导出为形状文件
  • 打开拉链,你会注意到Mapshaper已经将你的头发分开了 topojson分为3个形状文件,其中一个是美国各州
  • 将us-states.shp和us-states.shx上传到Mapshaper(您必须先刷新Mapshaper以删除原始的us.json文件);及
  • 另存为topojson,文件大小为58kb

除了瑞斯隆建议之外,您还可以使用和提取州边界。这两个都是免费的。要仅获取美国各州的信息,请执行以下步骤:

  • 将us.json文件上传至Mapshaper
  • 将其导出为形状文件
  • 打开拉链,你会注意到Mapshaper已经将你的头发分开了 topojson分为3个形状文件,其中一个是美国各州
  • 将us-states.shp和us-states.shx上传到Mapshaper(您必须先刷新Mapshaper以删除原始的us.json文件);及
  • 另存为topojson,文件大小为58kb

您可能希望使用而不是geojson.interest。我认为我使用的json文件是topojson,而不是geojson。不知道为什么Mike Bostock会在这个例子中使用geojson,而他主张在其他地方使用topojson。感谢您提供的指针。您可能希望使用而不是geojson.interest。我认为我使用的json文件是topojson,而不是geojson。不知道为什么Mike Bostock会在这个例子中使用geojson,而他主张在其他地方使用topojson。谢谢你的指针。我使用Mapshaper从我拥有的states TopoJSON文件中删除了Countries图层,并将其作为要点发布在这里:我使用Mapshaper从我拥有的states TopoJSON文件中删除Countries图层,并将其作为要点发布在这里: