Skip to main content

Mapping tile server for Datasette, serving tiles from MBTiles packages

Project description

datasette-tiles

PyPI Changelog Tests License

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

datasette-tiles-0.4.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datasette_tiles-0.4-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file datasette-tiles-0.4.tar.gz.

File metadata

  • Download URL: datasette-tiles-0.4.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for datasette-tiles-0.4.tar.gz
Algorithm Hash digest
SHA256 5d15e8d3994b01d84bf6061091aef8c9a1bfe8f9ccbbe47e752b10108476868e
MD5 a3e962aabef1ec2f96b28d64103dffb7
BLAKE2b-256 6beae12afba67495fd850c0dbc67a9663d16beb6d2cfc635edacaf53b205aa38

See more details on using hashes here.

File details

Details for the file datasette_tiles-0.4-py3-none-any.whl.

File metadata

  • Download URL: datasette_tiles-0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for datasette_tiles-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 17bd711dbd53a211a27770bd3ebb77bf95e22ffca88d0190d9aa3d54daf9dde8
MD5 6e61f354b55474fb2f26a3e61efc0465
BLAKE2b-256 88c06662fd66cb6f1bbe229a02eb1bb4b843622014c19d676453b446021ec2b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page