vector-tile-esm
v2.1.4
Published
Parses vector tiles
Downloads
622
Readme
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 layersx
,sy
— optionally specify the origin of the output coordinates within the (size x size) rendered area of the full tile.