D3 允许转换点坐标的 geojson/topojson 数组
[ [x,y],[x,y],[x,y],...] // aka, a geojson arc.
并且,通过投影,进入 svg 路径
<path d="M x,y x,y x,y ..."></path> // aka, an svg-xml path
注意:这些值实际上会发生变化。 Topojson点[x,y]
,通过变换projection([x,y])
为 svg 路径设置新值。
所以,如果我们存储在 svg 中:
-
投影名称
-
点相对于 svg 原点 0,0 的绝对坐标(已存储在路径中)。
-
Use projection.invert()
我们可以将 xml svg 转换回 topojson/shp,包括手工添加的形状和图层。
到目前为止,我不知道有任何开源工具这样做。
问题变成:我应该在 svg 中存储哪些最低要求,以便它能够保留转换回 GIS 格式的潜力?(我可能遗漏了一些点)
Edit:虽然意识到这一点,但处理的复杂性Point
, LineString
, Polygon
, MultiPoints
, MultiLineStrings
, MultiPolygons
不是现在的问题。只需满足最低要求,即可实现向后转换。
Edit2:转换回 geojson 可能会更容易,因为 svg 和 geojson 数据结构更相似。