尝试使用此:
topojson -o final.json -e data.tsv --id-property=pre_2,pre -p pre_2,state=name -- topojson.json
哪个应该输出:
{ "type": "Topology", "transform": { "scale": [ 0.000016880209206372492, 0.000007005401010148724 ], "translate": [ -1.8418800213354616, 51.15278777877789 ] }, "objects": { "states": { "type": "GeometryCollection", "geometries": [ { "type": "Polygon", "arcs": [ [ 0 ] ], "id": "AK", "properties": { "pre_2": "AK", "state": "Alaska" } } ] } }, "arcs": [ [ [ 0, 588 ], [ 92, -294 ], [ 91, -294 ], [ -183, 588 ] ] ]}从命令行参考维基:
--id- 要升级为几何ID的要素 属性的 名称
通过将该
pre_2属性与该选项一起使用,可以将其提升为功能ID。
在输入属性名称的前面加一个 + ,以将其值强制为数字。
加:
如果 --id-property 引用 的属性 为null或未定义,则将其从输出几何对象中 省略
。因此,如果输入要素不具有指定名称的属性,则生成的对象可能没有定义的ID。
因此,当您使用
+preand时
+pre_2,它们可能是
undefined,因为您无法将
AK字符串值转换为数字。
在此,输入属性“ FIPS”被强制为数字并用作功能标识符;同样,名为“
FIPS”的列也用作CSV文件中的标识符。(如果CSV文件使用其他列名称作为功能标识符,则可以指定多个id属性,例如--id-property=+FIPS,+id。)
这就是为什么您必须
pre在
--id-property=pre_2,pre选项中添加。这是映射如何制备(在
pre_2从
topojson.json 和
pre从塔 data.tsv )。
然后,从定义输入属性“ rate”的外部数据文件“ employee.tsv”中生成输出属性“ unemployment”。
在我们的例子中,
-ppre_2,state=name指定我们将保留
pre_2属性并将
name属性重命名为
state。前述文档Wiki中的“ 属性”
和“ 外部属性” 部分对这一问题提供了丰富的信息。



