使用Django从MBTiles文件中提供地图服务
项目描述
django-mbtiles 使用 Django 从 MBTiles 文件中提供地图。它主要依赖于 landez。
查看 LiveMbtiles,这是一个简单的地图目录项目,利用了 django-mbtiles。
安装
最新稳定版本
pip install django-mbtiles
最新开发版本
pip install -e git+https://github.com/makinacorpus/django-mbtiles.git#egg=django-mbtiles
用法
将 mbtilesmap 添加到您的 INSTALLED_APPS
确保您有 'django.core.context_processors.static' 在您的 上下文处理器
将 mbtilesmap url 包含到您的项目中
urlpatterns = patterns('', ... ... url(r'^', include('mbtilesmap.urls', namespace='mb', app_name='mbtilesmap')), )
添加 HTML 标头并调用模板标签
{% load mbtilesmap_tags %} ... {% block head %} {% mbtilesmap_head %} {{ block.super }} {% endblock head %} ... ... {% mbtilesmap filename %}
MBTiles 文件可以通过 MBTILES_ROOT 设置从子文件夹加载。
{% mbtilesmap filename catalog="subfolder" %}
示例
您可以在源代码树的 example/ 文件夹中找到一个工作演示项目(MBTiles 地图浏览器 livembtiles)(参见专门的 README.rst 文件)。
使用 nginx 缓存
在 http 部分 中声明一个缓存区域
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; }
缓存名称将为 master,索引为 10m,将持续 7d 并具有最大大小为 1g。
为特定位置从缓存中提供服务
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; }
请参阅 example 项目的 buildout 以自动化部署。
许可
Lesser GNU 公共许可
变更日志
1.3.0 (2013-09-18)
安全检查根目录为空,没有子目录
在 TileJSON 中添加网格 url
1.2.1 (2013-09-16)
设置已 zip 安全,已修复。
1.2 (2013-09-13)
更改行为,现在在 MBTILES_ROOT 中查找子目录而不是多个路径
1.1 (2013-09-11)
添加从多个文件夹加载 MBTiles 文件的能力
1.0
初始版本