0

我一直在做 d3让我们做一个地图教程,我很接近,但是在合并两个 json 文件时发生了一些事情,因为最终的 uk.json 没有三个字母的国家代码 - 使我的地图无用,因为我无法为子单元分配类别。

我从 Mike Bostock 那里读到这篇文章说 topojson 发生了变化,而是在创建文件时这样做:

  topojson \ 
            --id-property su_a3 \ 
            -p name=NAME \ 
            -p name \ 
            -o topo/uk.json \ 
            topo/subunits.json \ 
            topo/places.json 

我在终端中运行但在 uk.json 文件上的输出相同。有任何想法吗?我需要在我的目录中创建一个名为“topo”的子文件夹吗?

4

2 回答 2

0

1. 工作代码:很快,我发现你的代码和我的有些不同。试试这个:

topojson \ 
    --id-property su_a3 \ 
    -p name=name \ 
    -p name=NAME \ 
    -o topo/uk.json \
    -- topo/subunits.json \ 
    topo/places.json 

不过我还没有测试过。topo/... 路径也与我的代码不同。

2. 缺失:可能是您在工作流程中丢失了该属性。GIS 文件的数据属性名称可能已更改等。

3. 区分大小写: 检查您在 TOPOJSON 中调用的键是否与您的 GIS/Geojson 文件中的键匹配。这是区分大小写的。要检查 shp 文件:QuantumGIS* > 加载 .shp 文件 > 右键单击​​图层 > 打开属性表 > 在那里,查看列的标题。

*: 或其他 GIS 软件

于 2013-10-31T22:21:33.457 回答
0

我有同样的问题,虽然过了一段时间我意识到医生

-p, --properties 要保留的特性属性;没有名称保留所有属性

因此,如果您使用 -p 而不使用其他任何东西,例如

topojson --id-property SU_A3 -p -o yourjson.json -- subunits.json places.json 

您将获得所有功能,您将能够检索您想要的任何字段。我不知道如果你只想映射一些属性怎么办(我遇到了同样的问题)

无论如何,希望这有帮助

于 2016-05-01T23:39:53.090 回答