Пример #1
0
var source = new mbtiles(mbtilesFile, function(err) {
  source.getInfo(function(err, info) {
    tileJSON['name'] = id;
    tileJSON['format'] = 'pbf';
    Object.assign(tileJSON, info);
    tileJSON['tilejson'] = '2.0.0';
    tileJSON['basename'] = id;
    tileJSON['filesize'] = fs.statSync(mbtilesFile)['size'];
    delete tileJSON['scheme'];
    fixTileJSONCenter(tileJSON);
  });

  geojsonToTiles(process.stdin, maxZoom, pattern)
    .pipe(through(function (tile) {
      var parts = tile.split('/')
      var z = parts[0]
      var x = parts[1]
      var y = parts[2]
      var streamSelf = this;
      var outputFile = outputDir + '/' + tile + '.pbf'
      if (fs.existsSync(outputFile)) {
        return
      }
      streamSelf.pause()
      source.getTile(z, x, y, function(err, data, headers) {
        if (err) {
          // console.error(err)
          streamSelf.resume()
          return
        }
        if (data == null) {
          // console.error('Not found')
          streamSelf.resume()
          return
        }
        zlib.gunzip(data, function (err, ungzipped) {
          if (err) {
            // console.error(err)
            streamSelf.resume()
            return
          }
          mkdirp(path.dirname(outputFile), function () {
            fs.writeFile(outputFile, ungzipped, function () {
              streamSelf.resume()
            })
          })
        })
      });
    }))
    .on('end', function () {
      tileJSON.tiles = [
        tilesURl
      ]
      fs.writeFileSync(outputDir + '/metadata.json', JSON.stringify(tileJSON, undefined, 2))
      console.log('Done')
    })
});
Пример #2
0
  var source = new mbtiles(mbtilesFile, function(err) {
    source.getInfo(function(err, info) {
      tileJSON['name'] = id;
      tileJSON['format'] = 'pbf';

      Object.assign(tileJSON, info);

      tileJSON['tilejson'] = '2.0.0';
      tileJSON['basename'] = id;
      tileJSON['filesize'] = fs.statSync(mbtilesFile)['size'];
      delete tileJSON['scheme'];

      Object.assign(tileJSON, params.tilejson || {});
      utils.fixTileJSONCenter(tileJSON);
    });
  });