The MBTiles format makes it easy to manage and share thousands or even millions of map tiles.
MBTiles is a specification for storing tiled map data in SQLite databases for immediate use and for transfer. The files are designed for portability of thousands, hundreds of thousands, or even millions of standard map tile images in a single file.
Transferring an MBTiles file is faster than transferring millions of tile images when loading them onto USB stick, mobile device, or when transferring over a network. The trade-off in database access versus filesystem access when using MBTiles is, in our experience,
Because MBTiles files are self contained, they can used without an Internet connection.
Images are stored as blob data, so tiles can be read by most SQLite clients. There are manyimplementations of MBTiles from different organizations — notablyTileMill,TileStream,Arc2Earth,TileStache,
and MapBox for iPad.
MBTiles is an open-source specification. The specification text itself requires
attribution, but there are absolutely no restrictions or requirements placed on implementations.
Haiti Terrain Grey tileset. Then, open the MBTiles file in the sqlite client.
Next, run this SQL statment.
SELECT * FROM tiles WHERE zoom_level = 5;
This displays a row for each tile on zoom level five.
???? characters represents PNG images stored as blob data.
- python: raster2mb (write)
- python: mbutil (read/write)
- python: landez (write) (uses mbutil)
- python: TileStache (code) (read/write) – a full, high-quality tile server
- Arc2Earth (write)
- python: mapproxy (announcement) (read/write)
- objc: MapDBImporter (write)
- java/android: MBTilesDroidSpitter (example) (read)
- objc/iPhone: Maptual (read)
- java/Android: Locus (read)
- Windows compatible viewer:
- java/Android: Nutiteq SDK
- MapBox for iPad (read)
- js: TileMill (write)
- objc: route-me – using the
RMMBTilesTileSourceconnector (example) (read)
- TileMill OS X QuickLook & Spotlight plugins (read)
Last edited by willwhite, September 15, 2011