使用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
初始版本