vector-tile-esm
Reads 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 CJSrequire
. 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
Example
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);
API Reference
vector-tile-esm exposes 3 constructors: VectorTile, VectorTileLayer, and VectorTileFeature.
VectorTile
An object that parses vector tile data and makes it readable.
Constructor
-
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.
Properties
-
layers (Object) — an object containing parsed layers in the form of
{<name>: <layer>, ...}
, where each layer is aVectorTileLayer
object.
VectorTileLayer
An object that contains the data for a single vector tile layer.
Properties
-
version (
Number
, default:1
) -
name (
String)
— layer name -
extent (
Number
, default:4096
) — tile extent size -
length (
Number
) — number of features in the layer
Methods
-
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
VectorTileFeature
An object that contains the data for a single feature.
Properties
-
type (
Number
) — type of the feature (also seeVectorTileFeature.types
) -
extent (
Number
) — feature extent size -
id (
Number
) — feature identifier, if present -
properties (
Object
) — object literal with feature properties
Methods
-
loadGeometry() — parses feature geometry and returns an array of
point objects, with each point having
x
andy
properties -
bbox() — calculates and returns the bounding box of the feature in
the form
[x1, y1, x2, y2]
-
toGeoJSON(size[, sx, sy]) — returns a GeoJSON representation of the
feature.
-
size
— side length of the (square) area over which the tile's features will be rendered. Default: the .extent property of the layer -
sx
,sy
— optionally specify the origin of the output coordinates within the (size x size) rendered area of the full tile.
-