下载地图瓦片并将其存储在 MBTiles 数据库中
使用 pip 安装此工具
pip install download-tiles
此工具从指定的 TMS(瓦片地图服务器) 服务器下载指定边界框和缩放级别的瓦片,并将其存储在 MBTiles SQLite 数据库中。它是 Landez Python 库的命令行包装器。
请负责任地使用此工具。请查阅您正在与之交互的瓦片服务器的使用政策,例如 OpenStreetMap 瓦片使用政策。
运行以下命令将下载 OpenStreetMap 的缩放级别 0-3(共 85 个瓦片),并将其存储在一个名为 world.mbtiles 的 SQLite 数据库中
download-tiles world.mbtiles
您可以使用命令行选项自定义下载的瓦片和缩放级别
--zoom-levels=0-3
要下载的不同缩放级别。指定单个数字,例如 15,或数字范围,例如 0-4。使用此设置时请务必小心,因为您很容易超出底层瓦片服务器要求的限制。
--bbox=3.9,-6.3,14.5,10.2
要获取的边界框。应指定为 min-lon,min-lat,max-lon,max-lat。您可以使用 bboxfinder.com 来查找不同区域的这些值。
--city=london
或者
--country=madagascar
这些选项可以用来代替 --bbox。将使用 Nominatum API 查找指定的城市或国家,并用于推导出边界框。
--show-bbox
使用此选项可以输出为 --city 或 --country 检索到的边界框,而无需下载任何瓦片。
--name=Name
此瓦片集合的名称,用于 metadata 表中的 name 字段。如果未指定,将使用 UUID;如果您使用了 --city 或 --country,名称将设置为该地点的全名。
--attribution="Attribution string"
要写入 metadata 表的署名字符串。此项默认为 © OpenStreetMap contributors,除非您使用 --tiles-url 指定备用瓦片服务器,在这种情况下您应该指定自定义署名字符串。
您可以使用 --attribution=osm 快捷方式指定 © OpenStreetMap contributors 值,而无需完整输入。
--tiles-url=https://...
要使用的瓦片服务器 URL。这应该包含 {z}、{x} 和 {y} 指定符,并且可以选择包含 {s} 用于子域名。
此处使用的默认 URL 是针对 OpenStreetMap 的:http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
--tiles-subdomains=a,b,c
用于 {s} 参数的逗号分隔的子域名列表。
--verbose
使用此选项开启详细日志记录。
--cache-dir=/tmp/tiles
提供一个目录用于在多次运行之间缓存下载的瓦片。如果您担心可能没有对边界框或缩放级别使用正确的选项,此功能会很有用。
使用此工具创建的数据库将把其 SQLite 的 application_id 设置为 0x4d504258,如 SQLite magic.txt 文件中所述。
要为此工具做出贡献,首先检出代码。然后创建一个新的虚拟环境
cd download-tiles
python -mvenv venv
source venv/bin/activate
或者如果您正在使用 pipenv
pipenv shell
现在安装依赖项和测试
pip install -e '.[test]'
运行测试
pytest