如何从 D3 svg 转换为 topojson/geojson?

Hug*_*lpz 5 svg geojson d3.js topojson

D3 允许转换点坐标的 geojson/topojson 数组

[ [x,y],[x,y],[x,y],...]    // aka, a geojson arc.
Run Code Online (Sandbox Code Playgroud)

并且,通过投影,进入 svg 路径

<path d="M x,y x,y x,y ..."></path>  // aka, an svg-xml path
Run Code Online (Sandbox Code Playgroud)

注意:这些值实际上会发生变化。Topojson 点[x,y],通过projection([x,y])转换为 svg 路径的新值。

所以,如果我们存储在 svg 中:

  1. 投影名称

  2. 相对于 svg 原点 0,0 的点绝对坐标(已存储在路径中)。

  3. projection.invert()

我们可以将 xml svg 转换回 topojson/shp,包括手工添加的形状和图层。

到目前为止,我不知道有任何开源工具这样做。

问题变成:我应该在我的 svg 中存储什么最低要求,以便它保持被转换回 GIS 格式的潜力?(我可能错过了一些要点)


编辑:尽管知道这件事,在处理复杂性PointLineStringPolygonMultiPointsMultiLineStringsMultiPolygons是不是这个问题现在。只是最低要求,因此向后转换仍然是可能的。

Edit2:转换回 geojson 可能会更容易,因为 svg 和 geojson 数据结构更相似。