这个topojson makefile我哪里出错了?

时间:2014-07-19 23:47:33

标签: makefile topojson

我在makefile中尝试了以下两条指令:

states_topojson.json: states.shp
    node_modules/.bin/topojson \
        -o $@ 

states_topojson.json: states.shp
        node_modules/.bin/topojson \
            -o $@ 
        --projection='width = 960, height = 600, d3.geo.albersUsa() \
            .scale(1280) \
            .translate([width / 2, height / 2])' \
        --simplify=.5 \
        --filter=none \

我能够创建其他文件,所以我知道topojson已正确安装节点。

我的states.shp文件直接来自Bostock Us-Atlas,用以下内容制作:

make shp/us/states-unfiltered.shp

Seen here

当我尝试跑步时:

topojson -o output.json states.shp

我得到了这个声音:

Trace: { [Error: ENOENT, open 'states.dbf'] errno: 34, code: 'ENOENT', path: 'states.dbf' }
    at output (/usr/local/lib/node_modules/topojson/bin/topojson:259:29)
    at notify (/usr/local/lib/node_modules/topojson/node_modules/queue-async/queue.js:45:26)
    at /usr/local/lib/node_modules/topojson/node_modules/queue-async/queue.js:35:11
    at /usr/local/lib/node_modules/topojson/bin/topojson:236:23
    at /usr/local/lib/node_modules/topojson/node_modules/shapefile/index.js:14:23
    at /usr/local/lib/node_modules/topojson/node_modules/shapefile/read.js:26:29
    at notify (/usr/local/lib/node_modules/topojson/node_modules/queue-async/queue.js:45:26)
    at /usr/local/lib/node_modules/topojson/node_modules/queue-async/queue.js:35:11
    at /usr/local/lib/node_modules/topojson/node_modules/shapefile/index.js:45:25
    at /usr/local/lib/node_modules/topojson/node_modules/shapefile/dbf.js:16:30

将.dbf文件移动到根文件夹使topojson命令行正常工作。但是makefile仍然失败。

1 个答案:

答案 0 :(得分:1)

这可能需要几次迭代。

试试这个makefile(Make是一个工具; makefile是一个Make的文件,一种脚本):

output.json:
    topojson -o output.json states.shp

告诉我们它是否有效,我们可以继续。