MBTiles Offline
MBTiles binding for NodeJS 4+ using Callbacks and/or Promises.
Install
$ npm install --save mbtiles-offline
Usage
const MBTiles = const db = 'example.mbtiles' db//= Promise{ JSON } dbdb db//= Promise { <Buffer 00 01> } db//= Promise{ [[1, 2, 3], [2, 2, 3]] } db//= Promise { 2 } dbdb db//= Promise { 0 }
Features
Name | Description |
---|---|
metadata | Retrieve Metadata from MBTiles |
update | Update Metadata |
save | Save buffer data to individual Tile |
delete | Delete individual Tile |
count | Count total tiles |
findOne | Finds one Tile and returns buffer |
findAll | Finds all Tiles |
tables | Build SQL Tables |
index | Build SQL Index |
getMinZoom | Retrieves Minimum Zoom level |
getMaxZoom | Retrieves Maximum Zoom level |
getFormat | Retrieves Image Format |
getBounds | Retrieves Bounds |
validate | Validate MBTiles according to the specifications |
hash | Creates hash from a single Tile |
hashes | Creates a hash table for all tiles |
NodeJS Support
Windows, MacOSX, Linux & Electron
- Node.js v8
- Node.js v7
- Node.js v6
- Node.js v5
- Node.js v4
Schemas
XYZ
Slippy Map is the most commonly used Tile schema for service maps as tiles, providers such as Google/ArcGIS & OpenStreetMap use this schema.
const tile1 = 1 2 3const tile2 = 2 2 3const tile3 = 1 3 3const tile4 = 2 3 3const img = const db = 'xyz.mbtiles' 'xyz' dbdbdb//= Promise { <Buffer 00 01> }db//= Promise{ [[1, 2, 3], [2, 2, 3]] }
TMS
Tile Map Service is an OGC protocol for serving maps as tiles. MBTiles uses TMS as it's internal tile storage schema (TMS has an inverse Y compared to the XYZ schema).
const tile1 = 1 5 3const tile2 = 2 5 3const tile3 = 1 4 3const tile4 = 2 4 3const img = const db = 'tms.mbtiles' 'tms' dbdbdb//= Promise { <Buffer 00 01> }db//= Promise{ [[1, 5, 3], [2, 5, 3]] }
Quadkey
Bing Map Tile System, a quadkey is defined as a string which represent a Tile [x,y,z].
const tile1 = '021'const tile2 = '030'const tile3 = '023'const tile4 = '032'const img = const db = 'quadkey.mbtiles' 'quadkey' dbdbdb//= Promise { <Buffer 00 01> }db//= Promise { ['021', '030'] }
API
index
MBTiles
constructor
MBTiles
Parameters
uri
string Path to MBTilesschema
string Tile schema ('xyz', 'tms', 'quadkey') (optional, default'xyz'
)
Examples
const db = 'example.mbtiles'//= mbtiles
Returns MBTiles MBTiles
save
Save buffer data to individual Tile
Parameters
tile
Tile Tile [x, y, z]image
Buffer Tile image
Examples
db
Returns Promise<boolean> true/false
metadata
Retrieves Metadata from MBTiles
Examples
db
Returns Promise<Metadata> Metadata as an Object
metadataSync
Sync: Retrieves Metadata from MBTiles
Parameters
callback
Function a method that takes (error: {Error}, metadata: {Object})
Examples
db
Returns void
delete
Delete individual Tile
Parameters
tile
Tile Tile [x, y, z]
Examples
db
Returns Promise<boolean> true/false
getMinZoom
Retrieves Minimum Zoom level
Examples
db
getMaxZoom
Retrieves Maximum Zoom level
Examples
db
getFormat
Retrieves Image Format
Examples
db
Returns Promise<Formats>
getBounds
Retrieves Bounds
Parameters
zoom
number Zoom level
Examples
db
Returns Promise<BBox>
count
Count the amount of Tiles
Parameters
tiles
Array<Tile>? Only find given tiles
Examples
db
update
Update Metadata
Parameters
metadata
Metadata Metadata according to MBTiles spec 1.1.0 (optional, default{}
)metadata.attribution
string Attributionmetadata.bounds
BBox BBox [west, south, east, north] or Polygon GeoJSONmetadata.center
Center Center [lng, lat] or [lng, lat, height]metadata.description
string Descriptionmetadata.format
Formats Format 'png' | 'jpg' | 'webp' | 'pbf'metadata.minzoom
number Minimum zoom levelmetadata.maxzoom
number Maximum zoom levelmetadata.name
string Namemetadata.url
string URL source or tile schememetadata.type
Types Type 'baselayer' | 'overlay' (optional, default'baselayer'
)metadata.version
Versions Version '1.0.0' | '1.1.0' | '1.2.0' (optional, default'1.1.0'
)
Examples
const options = name: 'Foo' description: 'Bar' minzoom: 1 maxzoom: 3 format: 'png' bounds: -110 -40 95 50db
Returns Promise<Metadata> Metadata
validate
Validate MBTiles according to the specifications
Examples
db
Returns Promise<boolean> true/false
findAll
Finds all Tile unique hashes
Parameters
tiles
Array<Tile>? Only find given tiles (optional, default[]
)
Examples
const tile1 = 33 40 6const tile2 = 20 50 7db
Returns Promise<Array<Tile>> An array of Tiles [x, y, z]
findOneSync
Sync: Finds one Tile and returns Buffer
Parameters
tile
Tile Tile [x, y, z]callback
Function a method that takes (image: {Buffer})
Examples
db
Returns void
findOne
Finds one Tile and returns Buffer
Parameters
tile
Tile Tile [x, y, z]
Examples
db
Returns Promise<Buffer> Tile Data
tables
Build SQL tables
Examples
db
Returns Promise<boolean> true/false
index
Build SQL index
Examples
dbindex
Returns Promise<boolean> true/false
hash
Creates hash from a single Tile
Parameters
tile
Tile
Examples
const hash = dbhash5 25 12//= 16797721
Returns number hash
hashes
Creates a hash table for all tiles
Parameters
tiles
Array<Tile>? Only find given tiles
Examples
await dbawait dbdb//= Promise { Set { 64, 65 } }