django-mbtiles serves maps from MBTiles files using Django. It mainly relies on landez.
Checkout LiveMbtiles a simple maps catalog project that takes advantage of django-mbtiles.
Last stable version:
pip install django-mbtiles
Last development version:
pip install -e git+https://github.com/makinacorpus/django-mbtiles.git#egg=django-mbtiles
- Add
mbtilesmap
to yourINSTALLED_APPS
- Make sure you have
'django.core.context_processors.static'
in your context processors - Include mbtilesmap urls into your project
urlpatterns = patterns('', ... ... url(r'^', include('mbtilesmap.urls', namespace='mb', app_name='mbtilesmap')), )
- Add the HTML header and call the template tag
{% load mbtilesmap_tags %} ... {% block head %} {% mbtilesmap_head %} {{ block.super }} {% endblock head %} ... ... {% mbtilesmap filename %}
MBTiles files can be loaded from subfolders with MBTILES_ROOT
setting.
{% mbtilesmap filename catalog="subfolder" %}
You can find a working demo project (MBTiles maps browser livembtiles)
in the example/
folder of the source tree (see dedicated README.rst
file).
- Declare a cache zone in the
http
section :
http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=master:10m inactive=7d max_size=1g; proxy_temp_path /var/tmp/nginx; }
Cache name will be master
, index will be 10m
, will last 7d
and have a maximum size of 1g
.
- Serve from cache for a specific location :
location @proxy { ... proxy_cache master; proxy_cache_key $$scheme$$host$$uri$$is_args$$args; proxy_cache_valid 200 7d; proxy_cache_use_stale error timeout invalid_header; }
See example project's buildout for deployment automation.
- Mathieu Leplatre <mathieu.leplatre@makina-corpus.com>
- Andreas Trawoeger
- Lesser GNU Public License
- Safety check if root folder is empty, with no sub-folders
- Add grids urls in TileJSON
- Setup was zip safe, fixed it.
- Changed behaviour, looks for subfolders instead of multiple paths in MBTILES_ROOT
- Add ability to load MBTiles files from several folders
- Initial version