download-tiles 作者 simonw

星标

README 源代码

download-tiles

PyPI Changelog Tests License

下载地图瓦片并将其存储在 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