2018-01-08 12:04:24 -08:00
2017-02-02 13:43:28 -08:00
2017-07-12 14:32:48 -07:00
2016-02-09 15:44:32 -05:00
2014-09-29 15:17:36 -04:00
2017-04-13 17:12:43 -07:00
2014-12-10 03:10:19 -05:00
2016-04-15 13:26:06 -04:00
2011-10-22 19:17:39 -04:00
2017-04-20 09:10:58 -05:00
2018-01-08 12:04:24 -08:00

mbtiles

Node.js utilities and tilelive integration for the MBTiles format.

Build Status Build status

Installation

npm install @mapbox/mbtiles
var MBTiles = require('@mapbox/mbtiles');

API

Constructor

All MBTiles instances need to be constructed before any of the methods become available. NOTE: All methods described below assume you've taken this step.

new MBTiles('./path/to/file.mbtiles', function(err, mbtiles) {
  console.log(mbtiles) // mbtiles object with methods listed below
});

Reading

getTile

Get an individual tile from the MBTiles table. This can be a raster or gzipped vector tile. Also returns headers that are important for serving over HTTP.

mbtiles.getTile(z, x, y, function(err, data, headers) {
  // `data` is your gzipped buffer - use zlib to gunzip or inflate
});

getInfo

Get info of an MBTiles file, which is stored in the metadata table. Includes information like zoom levels, bounds, vector_layers, that were created during generation. This performs fallback queries if certain keys like bounds, minzoom, or maxzoom have not been provided.

mbtiles.getInfo(function(err, info) {
  console.log(info); // info
});

Writing

startWriting AND stopWriting

In order to write a new (or currently existing) MBTiles file you need to "start" and "stop" writing. First, construct the MBTiles object.

mbtiles.startWriting(function(err) {
  // start writing with mbtiles methods (putTile, putInfo, etc)
  mbtiles.stopWriting(function(err) {
    // stop writing to your mbtiles object
  });
});

putTile(z, x, y, buffer, callback)

Add a new tile buffer to a specific ZXY. This can be a raster tile or a gzipped vector tile (we suggest using require('zlib') to gzip your tiles).

putInfo(data, callback)

Put an information object into the metadata table. Any nested JSON will be stringified and stored in the "json" row of the metadata table. This will replace any matching key/value fields in the table.

Test

npm test
Description
No description provided
Readme 4.4 MiB
Languages
JavaScript 96.9%
PLpgSQL 3.1%