MapBox Mbtiles Utilities
Mapbox MBtiles Utilities
A Python 2.7 and 3 library for working with Mabox mbtiles v1.1
Provides a lighweight Python API for reading and writing mbtiles files.
Mabox mbtiles v1.1 allow you to store geographic data as rendered image tiles or as vector tiles, along with associated metadata.
pip install pymbtiles
To install from master branch on GitHub using pip:
pip install git+https://github.com/consbio/pymbtiles.git#egg=pymbtiles --upgrade
open for reading and read a tile:
from pymbtiles import MBTiles with MBtiles('my.mbtiles') as src: tile_data = src.read_tile(z=0, x=0, y=0)
returns tile data in bytes.
open for writing (existing file will be overwritten):
with MBtiles('my.mbtiles', mode='w') as out: out.write_tile(z=0, x=0, y=0, tile_data)
or write a bunch of tiles at once:
from pymbtiles import MBTiles, Tile tiles = ( Tile(z=1, x=0, y=0, tile_data=first_tile), ... ) with MBtiles('my.mbtiles', mode='w') as out: out.write_tiles(tiles)
r+ mode to read and write.
Metadata is stored in the
meta attribute of the mbtiles instance:
with MBtiles('my.mbtiles') as src: metadata = src.meta
This metadata is stored in the
metadata table in the mbtiles file, and contains
a number of records required or optional under the
mbtiles specification .
To update metadata:
with MBtiles('my.mbtiles', 'r+') as out: out.meta['some_key'] = 'some_value'
You can set several values at once by passing in a new
with MBtiles('my.mbtiles', 'w') as out: out.meta = my_metadata_dict
Listing available tiles
To list available tiles in the tileset:
with MBtiles('my.mbtiles') as src: for tile_coords in src.list_tiles(): # [TileCoordinate(z, x, y)...] ...
WARNING: for large tilesets, this can exceed available memory.
To list available tilesets for large tilesets, use:
with MBtiles('my.mbtiles') as src: for batch in src.list_tiles_batched(): for tile_coords in batch: # [TileCoordinate(z, x, y)...] ...
ops module provides
difference functions to perform set operations on tilesets.
Extend a tileset with new tiles from a second:
Create a new tileset with unique tiles combined from both left and right tilesets:
union(left_filename, right_filename, out_filename)
Create a new tileset from the tileset in the left tileset not present in the right tileset:
difference(left_filename, right_filename, out_filename)
Tiles are output to mbtiles format in xyz tile scheme.
mbtileserver: a lightweight Go tile server
tpkutils: a library for converting ArcGIS tile cache to mbtiles
col_rangeto provide basic information about tiles available in the tileset
list_tilesto list tiles and
list_tiles_batchto list tiles in batches
- all write-like operations for metadata and tiles are now overwrite by default
SQL for creating mbtiles database derived from node-mbtiles
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for pymbtiles-0.5.0-py3-none-any.whl