Mapping tile server for Datasette, serving tiles from MBTiles packages
Project description
datasette-tiles
Datasette plugin for serving MBTiles map tiles
Installation
Install this plugin in the same environment as Datasette.
$ datasette install datasette-tiles
Demo
You can try this plugin out at https://datasette-tiles-demo.datasette.io/-/tiles
Usage
This plugin scans all database files connected to Datasette to see if any of them are valid MBTiles databases.
It can then serve tiles from those databases at the following URL:
/-/tiles/db-name/zoom/x/y.png
An example map for each database demonstrating the configured minimum and maximum zoom for that database can be found at /-/tiles/db-name
- this can also be accessed via the table and database action menus for that database.
Visit /-/tiles
for an index page of attached valid databases.
You can install the datasette-basemap plugin to get a basemap
default set of tiles, handling zoom levels 0 to 6 using OpenStreetMap.
Tile stacks
datasette-tiles
can be configured to serve tiles from multiple attached MBTiles files, searching each database in order for a tile and falling back to the next in line if that tile is not found.
For a demo of this in action, visit https://datasette-tiles-demo.datasette.io/-/tiles-stack and zoom in on Japan. It should start showing Stamen's Toner map of Japan once you get to zoom level 6 and 7.
The /-/tiles-stack/1/1/1.png
endpoint provides this feature.
If you start Datasette like this:
datasette world.mbtiles country.mbtiles city1.mbtiles city2.mbtiles
Any requests for a tile from the /-/tiles-stack
path will first check the city2
database, than city1
, then country
, then world
.
If you have the datasette-basemap plugin installed it will be given special treatment: the basemap
database will always be the last database checked for a tile.
Rather than rely on the order in which databases were attached, you can instead configure an explicit order using the tiles-stack-order
plugin setting. Add the following to your metadata.json
file:
{
"plugins": {
"datasette-tiles": {
"tiles-stack-order": ["world", "country"]
}
}
}
You can then run Datasette like this:
datasette -m metadata.json country.mbtiles world.mbtiles
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-tiles
python3 -mvenv venv
source venv/bin/activate
Or if you are using pipenv
:
pipenv shell
Now install the dependencies and tests:
pip install -e '.[test]'
To run the tests:
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for datasette_tiles-0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17bd711dbd53a211a27770bd3ebb77bf95e22ffca88d0190d9aa3d54daf9dde8 |
|
MD5 | 6e61f354b55474fb2f26a3e61efc0465 |
|
BLAKE2b-256 | 88c06662fd66cb6f1bbe229a02eb1bb4b843622014c19d676453b446021ec2b0 |