Serialize mapbox vector tiles to binary protobufs in javascript.
npm install @maplibre/vt-pbf
Serialize Mapbox vector tiles to binary protobufs in javascript.
npm install @maplibre/vt-pbfOr npm run build and find build artifacts in dist/
As far as I know, the two places you might get a JS representation of a vector
tile are geojson-vt and
vector-tile-js. These both use
slightly different internal representations, so serializing each looks slightly
different:
``javascript
import {fromVectorTileJs} from 'vt-pbf'
import {VectorTile} = from '@mapbox/vector-tile'
import Protobuf from 'pbf'
var data = fs.readFileSync(__dirname + '/fixtures/rectangle-1.0.0.pbf')
var tile = new VectorTile(new Protobuf(data))
var orig = tile.layers['geojsonLayer'].feature(0).toGeoJSON(0, 0, 1)
var buff = fromVectorTileJs(tile)
fs.writeFileSync('my-tile.pbf', buff)
`
`javascript
import {fromGeojsonVt} from 'vt-pbf'
import geojsonVt from '@maplibre/geojson-vt'
var orig = JSON.parse(fs.readFileSync(__dirname + '/fixtures/rectangle.geojson'))
var tileindex = geojsonVt(orig)
var tile = tileindex.getTile(1, 0, 0)
// pass in an object mapping layername -> tile object
var buff = fromGeojsonVt({ 'geojsonLayer': tile })
fs.writeFileSync('my-tile.pbf', buff)
`
fromGeojsonVt takes two arguments:layerMap
- is an object where keys are layer names and values are a geojson-vt tile,options
- is an object (optional argument). There are 2 supported keys: version to define the version of the mvt spec used and extent to define the extent of the tile. version defaults to 1 and extent` to 4096.