本文使用PyQGIS代码加载本地目录的XYZ瓦片数据。假设瓦片数据位于 D:/tiles 目录中。数据子目录按 {z}/{x}/{y}.png 目录结构组织,坐标系为 EPSG:3857。
代码核心是通过构造 URI type=xyz&url=file:///D:/testdata/tiles/{z}/{x}/{y}.png,再调用 QgsRasterLayer 创建图层,并添加到当前QGIS项目。
请将代码运行于 QGIS 提供的 Python 控制台。
要点说明
- URI 使用 type=xyz 表明数据源是 XYZ 瓦片,url 指定瓦片模板路径,其中 {z}、{x}、{y} 是占位符。
- 路径中的反斜杠需替换为正斜杠,且需添加 file:/// 前缀(三个斜杠)。
- 若需限制瓦片层级,可在 URI 末尾添加
&zmin=0&zmax=22 参数。
- 数据存放目录,使用英文。
from qgis.core import QgsRasterLayer, QgsProject
# 本地瓦片根目录(请确认该路径包含 {z}/{x}/{y}.png 的瓦片层级结构)
local_dir = "D:/tiles"
# 构造 XYZ 瓦片的访问 URI
tile_url = f"file:///{local_dir}/{{z}}/{{x}}/{{y}}.png"
uri = f"type=xyz&url={tile_url}"
# 创建图层(使用 "wms" 提供者可以处理 XYZ 瓦片)
layer = QgsRasterLayer(uri, "Local Tiles", "wms")
# 验证图层有效性并添加至项目
if layer.isValid():
QgsProject.instance().addMapLayer(layer)
print("本地瓦片图层加载成功!")
else:
# 输出错误信息便于排查
error = layer.error()
print(f"图层加载失败,错误信息:{error.summary()}")
更多QGIS使用问题,欢迎留言或联系我们。转载须注明出处。