使用TopoJSON 2.0 API将Shape文件转换为TopoJSON

时间:2017-07-25 20:38:10

标签: node.js d3.js shapefile topojson

我正在尝试创建一个允许您与美国任何州的任何邮政编码进行互动的应用。我通过使用topoJSON和d3来绘制地图来实现这一目标。我找到一个包含我需要的所有数据的topojson文件时遇到了很多麻烦,因此我使用GQIS创建了自己的美国州的shapefile。

我的最后一步是将我创建的shape文件转换为topoJSON文件。我观看了一些使用旧版topoJSON命令行的教程,他们只需运行如下命令即可将shapefile转换为topojson文件:

topojson -p -o illinois.zcta.json -- illinois.shp

我的理解是该请求的解剖结构是:

topojson (invoking node module) -p(all properties) -o(all objects) illinois.zcta.json(name of file you want) -- illinois.shp(name of file to converT)

但是,Topojson API似乎已更新,不再支持此请求。我已经使用NPM全局安装了topojson并尝试运行上面的函数提醒我topoJSON不是函数。

我在新版本的topoJSON命令行中挖掘了the documentation,看起来要复杂得多。有很多方法可以分割数据 - 但是没有一种方法可以将Shapefile转换为Topojson,或者将形状文件转换为geoJSON,然后我可以将其转换为Topojson。我觉得这个功能(直接将.shp文件直接更改为topojson文件)将会被删除 - 尽管事实上它首先可能是神奇的。任何人都可以指导我将形状文件转换为topojson文件的最佳方法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您应该能够使用shp2jsonhttps://github.com/substack/shp2json)和geo2topohttps://github.com/topojson/topojson-server/blob/master/README.md#geo2topo)的序列。但您也可以直接从QGIS获取geojson,在这种情况下,您可以跳过第一步。