Parses vector tiles
npm install vector-tile-esmReads [Mapbox Vector Tiles][] and allows access to the layers and features.
This module is a fork of [vector-tile-js][], with several key changes:
- Code is set up for ESM import, rather than CJS require. This allows it
to be imported dynamically (e.g., on [Observable][]) without depending on a
third-party bundling service such as [bundle.run][]
- The VectorTileFeature.toGeoJSON() method behaves very differently, returning
pixel coordinates within a tile, rather than assuming Web Mercator and
attempting to back-project to longitude and latitude
- The dependence on the [point-geometry][] module has been removed
[Mapbox Vector Tiles]: https://github.com/mapbox/vector-tile-spec
[vector-tile-js]: https://github.com/mapbox/vector-tile-js
[Observable]: https://observablehq.com
[bundle.run]: https://bundle.run
[point-geometry]: https://github.com/mapbox/point-geometry
``js
import { VectorTile } from 'vector-tile-esm';
import Protobuf from 'pbf-esm';
var tile = new VectorTile(new Protobuf(data));
// Contains a map of all layers
tile.layers;
var landuse = tile.layers.landuse;
// Number of features in this layer
landuse.length;
// Returns the first feature
landuse.feature(0);
`
An object that parses vector tile data and makes it readable.
- new VectorTile(protobuf[, end]) —
parses the vector tile data contained in the given [Protobuf][] object,
saving resulting layers in the created object as a layers property.
Optionally accepts end index.
[Protobuf]: https://github.com/mapbox/pbf
- layers (Object) — an object containing parsed layers in the form of
{, where each layer is a VectorTileLayer object.
An object that contains the data for a single vector tile layer.
- version (Number, default: 1)String)
- name (— layer nameNumber
- extent (, default: 4096) — tile extent sizeNumber
- length () — number of features in the layer
- feature(i) — get a feature (VectorTileFeature) by the given index
from the layer.
- toGeoJSON(size[, sx, sy]) — Return a GeoJSON FeatureCollection
representing all the features in the layer. See the corresponding method of
VectorTileFeature for the parameters
An object that contains the data for a single feature.
- type (Number) — type of the feature (also see VectorTileFeature.types)Number
- extent () — feature extent sizeNumber
- id () — feature identifier, if presentObject
- properties () — object literal with feature properties
- loadGeometry() — parses feature geometry and returns an array of
point objects, with each point having x and y properties[x1, y1, x2, y2]
- bbox() — calculates and returns the bounding box of the feature in
the form size
- toGeoJSON(size[, sx, sy]) — returns a GeoJSON representation of the
feature.
- — side length of the (square) area over which the tile's sx
features will be rendered. Default: the .extent property of the layer
- , sy` — optionally specify the origin of the output coordinates
within the (size x size) rendered area of the full tile.