node package manager


Parses vector tiles


This library reads Mapbox Vector Tiles and allows access to the layers and features.

var VectorTile = require('vector-tile').VectorTile;
var Protobuf = require('pbf');
var tile = new VectorTile(new Protobuf(data));
// Contains a map of all layers 
var landuse = tile.layers.landuse;
// Amount of features in this layer 
// Returns the first feature 

Vector tiles contained in serialtiles-spec are gzip-encoded, so a complete example of parsing them with the native zlib module would be:

var VectorTile = require('vector-tile').VectorTile;
var Protobuf = require('pbf');
var zlib = require('zlib');
zlib.gunzip(data, function(err, buffer) {
    var tile = new VectorTile(new Protobuf(buffer));
  • Node.js v0.10.x or v0.8.x

To install:

npm install vector-tile

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.
  • layers (Object) — an object containing parsed layers in the form of {<name>: <layer>, ...}, where each layer is a VectorTileLayer object.

An object that contains the data for a single vector tile layer.

  • version (Number, default: 1)
  • name (String)— layer name
  • extent (Number, default: 4096) — tile extent size
  • length (Number) — number of features in the layer
  • feature(i) — get a feature (VectorTileFeature) by the given index from the layer.

An object that contains the data for a single feature.

  • type (Number) — type of the feature (also see VectorTileFeature.types)
  • extent (Number) — feature extent size
  • id (Number) — feature identifier, if present
  • properties (Object) — object literal with feature properties
  • loadGeometry() — parses feature geometry and returns an array of Point arrays (with each point having x and y properties)
  • bbox() — calculates and returns the bounding box of the feature in the form [x1, y1, x2, y2]
  • toGeoJSON(x, y, z) — returns a GeoJSON representation of the feature. (x, y, and z refer to the containing tile's index.)