TopoJson makefile忽略外部属性文件

时间:2016-05-01 23:00:51

标签: csv d3.js topojson

我正在尝试使用makefile嵌入带有csv数据的topojson文件。我正在使用Mike Bostock的us-atlas作为指南。

topo/us-counties-10m-ungrouped.json: shp/us/counties.shp
    mkdir -p $(dir $@)
    topojson \
      -o us_counties.json \
      --no-pre-quantization \
      --post-quantization=1e6 \
      --external-properties=output.csv \
      --id-property=FIPS \
      --properties="County=County" \
      --properties="PerChildrenPos=+PerChildrenPos" \
      --simplify=7e-7 \
      -- $<

它创建了我需要的topojson但完全忽略了output.csv文件。 以下是它回归的一瞥。

{"type":"Polygon","id":"53051","properties":{"code":"53051"},"arcs":[[-22,79,80,-75,81]]}

这就是我需要它返回的地方。

{"type":"Polygon","id":"53051","properties":{"code":"53051", "County":"Los Angeles", "PerChildrenPos": 10},"arcs":[[-22,79,80,-75,81]]}

为什么它可能会忽略csv文件的任何想法,我已经测试过移动它以查看它是否是无法访问的东西?

提前致谢。

1 个答案:

答案 0 :(得分:0)

根据此处的文件:https://github.com/mbostock/topojson/wiki/Command-Line-Reference#external-properties

  

(如果您的CSV文件为要素标识符使用不同的列名,则可以指定多个ID属性,例如--id-property = + FIPS,+ id。)

您似乎需要将--id-property=FIPS \更改为与您的CSV列名对应的内容。

同样适用于--properties="County=County" \
我认为它应该是--properties County=+County \

--properties="PerChildrenPos=+PerChildrenPos" \相同 应为--properties PerChildrenPos=+PerChildrenPos \

对于--external-properties=output.csv \
它应该是--external-properties output.csv \

基本上,参数不需要以=符号作为前缀。