gpt4 book ai didi

d3.js - TopoJSON 属性保存

转载 作者:行者123 更新时间:2023-12-03 23:24:41 24 4
gpt4 key购买 nike

我正在使用 topojson 转换现有的 GeoJSON 数据集,但它没有保留属性。它遵循标准的 GeoJSON 格式,并将属性放置在与几何图形相同级别的“属性”对象中(下面的片段),但是当 topojson 成功完成时,我最终得到了一个有效的 topojson 数据文件,我可以使用并显示在 map ,但文件中没有任何属性。我没有指定属性,默认行为是在这种情况下保留所有属性,所以我很困惑。

{"type": "Feature", "geometry": {"type":"MultiLineString","coordinates":[[[12.06,37.97],[12.064,37.991]],[[12.064,37.991],[28.985,41.018]]]}, "properties": {"pair": 50129,"direction": 0,"month": 12,"priority": 0,"expense": 4.854,"duration": 20.423,"length": 2950.524}}

编辑:我也没有足够的积分来注册 topojson 标记,所以我将其列为 D3,直到创建该标记。

最佳答案

正如@ow3n 所说,geo2topo并且不再提供编辑原件属性的方法。因此@james246 很好的答案不再适用于最新的包。

但我终于明白了如何使用 ndjson-cli .感谢 Mike Bostock 自己在 github issue thread 中的回答,这几乎是复制粘贴所以做网犹豫看看原来的。

首先安装新包:

npm i -g shapefile ndjson-cli topojson-client topojson-server topojson-simplify

然后分三步:

第 1 步:将 Shapefile 转换为以换行符分隔的 GeoJSON 特征。
shp2json -n original.shp > myfile.ndjson

步骤 2:重新定义 GeoJSON 属性,您也可以重命名它们。
ndjson-map 'd.properties = {prop1: d.properties.prop1, p2: d.properties.prop2}, d' \
< myfile.ndjson \
> myfile-filtered.ndjson

第 3 步:将换行符分隔的 GeoJSON 转换为 TopoJSON。
geo2topo -n myfile-filtered.ndjson > myfile-topo.json

备注 :
如果没有原版 .shp文件了,你可以转换你的实际 .json使用 ndjson-split 将文件转换为以换行符分隔的 GeoJSON 特征:
 ndjson-split 'd.features' \
< myfile.json \
> myfile.ndjson

然后按照步骤 2 中的说明进行操作。

关于d3.js - TopoJSON 属性保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com