使用tippecanoe进行批量生成矢量瓦片的方法

 
// 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的代码如下:

var fs = require(‘fs‘);

var dirGeojson = ‘D:/geojson/‘; // geojson文件目录
var dirPbf = ‘D:/pbf/‘; // 生成切片的目录

fs.readdir(dirGeojson, function(err, files) {
  let res = ‘‘;
  files.forEach(item => {
    res +=
      ‘tippecanoe -e ‘ +
      dirPbf +
      item.split(‘.‘)[0] +
      ‘ -pC -Z8 -z20 -f ‘ +
      dirGeojson +
      item +
      ‘;‘;
  });
  // 将生成切片命令写入文件
  fs.writeFile(‘./tippecanoe-command.txt‘, res, function() {
    console.info(‘ok‘);
  });
});

这里输入的geojson目录和输出的pbf目录都是绝对路径,所以打开tippecanoe后直接粘贴 tippecanoe-command.txt 中的内容就能运行。

 

相关推荐