// tippecanoe切片的命令格式:tippecanoe - e ./pbf/lakepbf -pC -Z8 -z20 -f lake.geojson
使用tippecanoe生成矢量瓦片的方法,可以參考這里
https://www.cnblogs.com/jyughynj/p/11804721.html。
但這里介紹了一次生成一個圖層的瓦片,實際項目中肯定會有很多個圖層,手動一條條修改命令、執行效率實在比較低。
事實上,
可以把多條命令用“;”分割后一起放入tippecanoe中執行。像下面這樣:
1 tippecanoe - e ./pbf/data0 -pC -Z8 -z20 -f data0.geojson;tippecanoe - e ./pbf/data1 -pC -Z8 -z20 -f data1.geojson;tippecanoe - e ./pbf/data2 -pC -Z8 -z20 -f data2.geojson;tippecanoe - e ./pbf/data3 -pC -Z8 -z20 -f data3.geojson;
只要把命令預先寫好粘到tippecanoe即可,但是能更偷懶的話還是要再試一下的。這么多命令中只有輸入參數和輸出的目錄不同,都是文件名相關的,可以通過遍歷文件名生成這個命令列表。
node.js的代碼如下:
1 var fs = require('fs'); 2 3 var dirGeojson = 'D:/geojson/'; // geojson文件目錄 4 var dirPbf = 'D:/pbf/'; // 生成切片的目錄 5 6 fs.readdir(dirGeojson, function(err, files) { 7 let res = ''; 8 files.forEach(item => { 9 res += 10 'tippecanoe -e ' + 11 dirPbf + 12 item.split('.')[0] + 13 ' -pC -Z8 -z20 -f ' + 14 dirGeojson + 15 item + 16 ';'; 17 }); 18 // 將生成切片命令寫入文件 19 fs.writeFile('./tippecanoe-command.txt', res, function() { 20 console.info('ok'); 21 }); 22 });
這里輸入的geojson目錄和輸出的pbf目錄都是絕對路徑,所以打開tippecanoe后直接粘貼 tippecanoe-command.txt 中的內容就能運行。