This library reads Mapbox Vector Tiles and allows access to the layers and features.
import {VectorTile} from '@mapbox/vector-tile';
import Protobuf from 'pbf';
const tile = new VectorTile(new Protobuf(data));
// Contains a map of all layers
tile.layers;
const landuse = tile.layers.landuse;
// Amount of features in this layer
landuse.length;
// Returns the first feature
landuse.feature(0);
Vector tiles contained in serialtiles-spec are gzip-encoded, so a complete example of parsing them with the native zlib module would be:
import {VectorTile} from '@mapbox/vector-tile';
import Protobuf from 'pbf';
import {gunzipSync} from 'zlib';
const buffer = gunzipSync(data);
const tile = new VectorTile(new Protobuf(buffer));
To install:
npm install @mapbox/vector-tile
An object that parses vector tile data and makes it readable.
layers property. Optionally accepts end index.{<name>: <layer>, ...}, where each layer is a VectorTileLayer object.An object that contains the data for a single vector tile layer.
Number, default: 1)String) — layer nameNumber, default: 4096) — tile extent sizeNumber) — number of features in the layerVectorTileFeature) by the given index from the layer.An object that contains the data for a single feature.
Number) — type of the feature (also see VectorTileFeature.types)Number) — feature extent sizeNumber) — feature identifier, if presentObject) — object literal with feature propertiesx and y properties)[x1, y1, x2, y2]x, y, and z refer to the containing tile's index.)