QGIS入门指南:从qgis add basemap谈起
在 QGIS 的日常工作流里,底图是我打开项目后首先确认的要素,而很多同学搜索“
qgis add basemap”仍会卡在该选 WMS/WMTS、XYZ Tiles 还是 Vector Tiles 的岔路口。作为在规划院与科技公司都深度实践过的 GIS 从业者,我更关注三件事:它是什么、为什么重要、怎么做最稳妥。本文就围绕“添加底图”这一核心动作,拆解协议与投影、许可与性能、在线与离线的全链路细节,并给出可复制的实战清单与 PyQGIS 代码。

快速结论:QGIS 原生推荐优先使用 XYZ Tiles(轻量、快、易缓存),需要官方发布与尺度控制时选 WMTS,要高分辨率与定制样式且追求交互与清晰度时选 Vector Tiles(MVT)。任何来源都要遵守服务方的许可与署名要求。
基础认知:底图与在线地图协议的全景图
理解“是什么”,从协议和数据形态入手最有效。我常用“快餐 vs. 正餐”的类比来帮助初学者:XYZ 像快餐(轻快、随取随用),WMTS/WMS 像正餐(有菜单与规范,较稳但有时略慢),Vector Tiles 则像定制料理(材料到桌前再加工,灵活但需要样式)。| 类型 | 核心特征 | 优点 | 注意事项 | QGIS 支持 |
|---|---|---|---|---|
| XYZ Tiles | 按 {z}/{x}/{y} 切片取图,WebMercator |
快、配置简单、缓存友好 | 许可限制、缩放级别有限、像素化 | 原生,浏览器面板新建连接 |
| WMTS | OGC 标准切片服务 | 官方尺度/样式一致、稳定 | 配置稍复杂、性能略逊于直连 XYZ | 数据源管理器 → WM(T)S |
| WMS | 动态服务端渲染地图 | 图层丰富、可按需渲染 | 高并发时慢、非切片 | 数据源管理器 → WM(T)S |
| Vector Tiles (MVT) | 矢量切片 + 样式 JSON | 清晰、可定制、交互友好 | 需样式与字体资源、API Key 常见 | 添加矢量切片图层 |
为什么要先把底图“加对”:投影、许可与性能三要素
- 投影:绝大多数在线底图采用 EPSG:3857 Web Mercator。QGIS 可“按需投影 (OTF)”,但面积/距离会产生扭曲。量算/缓冲/面积统计请切换工程 CRS 至合适的等积/本地投影(如 UTM 带)。
- 许可:底图不是“免费的午餐”。OpenStreetMap 有使用政策,Google/Bing 等严禁未授权抓取瓦片,Stamen 老款样式已迁移并需 Key。务必阅读服务条款并正确署名。
- 性能:XYZ 直连最快,WMTS 次之,WMS 最慢(需服务端渲染)。矢量切片在高 DPI 下更清晰,但首次载入需拉取样式/字体。QGIS 的网络缓存、并发数、代理设置会显著影响体验。
实操一:用内置 XYZ Tiles 快速添加常用底图
在 QGIS 中高效完成“qgis add basemap”的起点是内置的 XYZ Tiles。我的标准流程如下:- 打开 QGIS 的 浏览器面板,在 XYZ Tiles 上右键 → 新建连接。
- 填写名称与 URL 模板(示例见下),设置 最小/最大缩放级别 与 缓存 选项。
- 双击新建的连接,将底图加入图层面板;必要时在工程属性中将投影设为 EPSG:3857 以确保底图清晰。
常用 XYZ 模板(示例,注意各自的许可)
- OpenStreetMap 标准(遵循 OSM Tile 使用政策)
# URL https://tile.openstreetmap.org/{z}/{x}/{y}.png # 可选:User-Agent/Referer 按政策设定,避免滥用 - Esri World Imagery(Esri 许可约束,用于可视化与参考)
# XYZ 直连(公共服务,生产用途请阅读 Esri 条款) https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x} - CARTO Voyager(遵守 CARTO 条款)
https://cartodb-basemaps-a.global.ssl.fastly.net/rastertiles/voyager/{z}/{x}/{y}.png - Stamen 派生样式(原 stamen 瓦片迁移,通常需 API Key,参考提供商当前公告)
# 请至提供商控制台获取带 key 的 URL,避免使用过期端点 https://{subdomain}.example.com/tiles/toner/{z}/{x}/{y}.png?key=YOUR_KEY
合规提醒:不要在 QGIS 中直接配置 Google、Bing 等未授权的切片 URL。部分服务允许通过官方 SDK/授权方式调用,而非裸露的瓦片端点。
细节优化
- 缩放级别:都市项目常用 0–19;影像若超过原生级别会模糊,避免“超分辨率拉伸”。
- 缓存:在“设置 → 选项 → 网络”中调大磁盘缓存并保留缓存目录,移动端/野外可配合离线方案。
- 标注语言:部分矢量底图支持语言切换;栅格切片通常不可更改。
实操二:连接官方 WMS/WMTS 作为权威底图
当需要面向发布的统一样式与比例尺,或需要官方专题层(地形、等高线、海图等),我优先选择 WMTS/WMS。- 打开 数据源管理器 → WM(T)S,新建连接并填入 GetCapabilities 地址。
- 选择图层与坐标参考系,按需设置图像格式(PNG 透明/压缩 vs JPEG 体积小)。
- 添加到工程;在布局中引用时注意署名与标识。
- USGS Topo(WMTS 能力文档)
https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/WMTS/1.0.0/WMTSCapabilities.xml - Esri World Imagery(WMTS 能力文档)
https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml
实操三:Vector Tiles(MVT)让底图更清晰、更可定制
随着 QGIS 3.x 的迭代,矢量切片支持愈发成熟:支持样式 JSON、字体资源和标签规则,既适合大屏高 DPI 场景,也方便定制自有企业风格。- 菜单 图层 → 添加图层 → 添加矢量切片图层。
- 在“连接”中新建:填入样式 JSON 地址(多数提供商需要 API Key)。
- 加载后在图层属性中可调整样式、字体与可见级别。
- MapTiler(示例,需要 Key)
# Style JSON https://api.maptiler.com/maps/streets/style.json?key=YOUR_KEY - OpenMapTiles 自部署:企业内网可自建 tileserver-gl/TileServer GL,提供
style.json与 PBF。
PyQGIS:用代码一键把底图塞进你的工程
在批量项目或团队模板中,我习惯用 PyQGIS 统一注入底图,确保一致性与可迁移性。# 在 QGIS Python 控制台或脚本中运行
from qgis.core import QgsProject, QgsRasterLayer, QgsProviderRegistry, QgsVectorTileLayer
# 1) 添加 XYZ 底图(以 OSM 为例)
url = "type=xyz&url=https://tile.openstreetmap.org/{z}/{x}/{y}.png&zmin=0&zmax=19"
osm = QgsRasterLayer(url, "OSM Standard", "wms") # 提供者使用 wms 适配 xyz 协议
if osm.isValid():
QgsProject.instance().addMapLayer(osm)
# 2) 添加 Esri 影像 XYZ
esri = QgsRasterLayer(
"type=xyz&url=https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
"Esri World Imagery", "wms")
if esri.isValid():
QgsProject.instance().addMapLayer(esri)
# 3) 添加矢量切片(以 MapTiler 为例)
vt_url = "https://api.maptiler.com/maps/streets/style.json?key=YOUR_KEY"
vt = QgsVectorTileLayer(vt_url, "Vector Tiles (Streets)", "mbtiles")
# 注意:若使用远程 style.json,请确保网络可达与字体资源可用
if vt.isValid():
QgsProject.instance().addMapLayer(vt)
进阶建议:将 API Key 存于 QGIS 认证管理器或项目变量,避免明文写入工程文件。
案例拆解:不同场景如何选“对”的底图
- 城市更新可视化汇报:需要审美一致与文字清晰。我倾向 Vector Tiles(深色/浅色两套样式),叠加标注与地块边界;若需影像对比,再辅以 Esri World Imagery XYZ。
- 乡村国土整治外业:信号不稳、设备轻量化优先。预先以 QGIS 的“生成 XYZ 切片(MBTiles)”导出项目区底图,野外直接加载 MBTiles 保证流畅;数据回传后再切到在线底图修订。
离线与弱网方案:MBTiles/GeoPackage
- 菜单 处理 → 工具箱,搜索 Generate XYZ tiles (MBTiles)(算法标识
qgis:tilesxyz)。 - 选择输入图层/范围、缩放级别、输出为 .mbtiles。
- 在 QGIS 中通过 数据源管理器 → 瓦片 → MBTiles 或直接拖入加载。
故障排查与性能优化清单
- 粉红瓦片/空白:多为 403/429(权限/限流)或 SSL 问题。检查 URL、代理、是否超出速率;在“日志消息面板 → 网络”看错误码。
- 模糊与锯齿:放大超过最大级别;或工程 CRS 与底图不一致导致重采样。将工程 CRS 设为 EPSG:3857 检查;输出时在布局中启用高分辨率渲染。
- 叠加偏移:自有数据 CRS 未定义或定义错误。先“设定图层 CRS”,必要时重投影至工程 CRS。
- 速度慢:在“设置 → 选项 → 网络”增大缓存;减少并发图层数;优先使用 XYZ/WMTS 替代 WMS;必要时搭建近端代理/缓存。
- API Key 泄露风险:使用 认证管理器与项目变量,不在脚本与项目文件中硬编码 Key。
- 署名合规:在布局中添加 版权/来源,例如 “© OpenStreetMap contributors”。
常见对比:XYZ、WMTS、WMS、Vector Tiles 如何选
- 快速浏览/底图参照:XYZ 优先。
- 官方数据一致性与发布规范:WMTS/WMS。
- 高清可视化与样式可控:Vector Tiles。
- 野外离线:MBTiles(由上述任一来源事先切片)。
进阶实践:工程级“底图资产”管理
- 团队预置:将常用底图连接打包为 .qgz 模板,统一工程起步配置。
- 版本可追溯:在连接备注中记录来源、条款与更新时间,避免“过期端点”踩坑。
- 多环境:为内外网分别维护连接清单;内网优先自建缓存/代理保障稳定性。
总结与行动建议
回到“qgis add basemap”的初衷:底图不是越多越好,而是要“选对、加稳、跑快”。我的要点是:- 优先 XYZ,规范 WMTS,必要时上 Vector Tiles 提升清晰度与定制。
- 牢记 EPSG:3857 的度量误差,分析计算换回合适的投影。
- 尊重服务条款与署名,合理使用缓存与离线方案。
- 用 PyQGIS 固化团队最佳实践,减少人为失误。
参考文献
- QGIS 官方文档:Tile Map Services (XYZ) — https://docs.qgis.org/latest/zh_Hans/docs/user_manual/managing_data_source/opening_data.html#tile-map-services-xyz
- QGIS 官方文档:OGC 客户端支持(WMS/WMTS) — https://docs.qgis.org/latest/en/docs/user_manual/working_with_ogc/ogc_client_support.html
- QGIS 官方文档:矢量切片 — https://docs.qgis.org/latest/en/docs/user_manual/working_with_vector_tiles/vector_tiles.html
- OpenStreetMap Tile 使用政策 — https://wiki.openstreetmap.org/wiki/Tile_usage_policy
- Google Maps Platform 服务条款 — https://developers.google.com/maps/terms
- Esri Master Agreement(含底图使用条款) — https://www.esri.com/en-us/legal/terms/full-master-agreement
- MapTiler Cloud 文档 — https://www.maptiler.com/cloud/
- USGS The National Map — https://usgs.gov/programs/national-geospatial-program/national-map
- QGIS 认证系统(密钥与凭据管理) — https://docs.qgis.org/latest/en/docs/user_manual/auth_system/auth_system.html
- QGIS 3.34 Changelog(含矢量切片改进) — https://changelog.qgis.org/en/qgis/version/3.34/
相关文章
-
空间建模与应用技术就业前景解析,空间建模入门指南 2025-09-27 11:01:10
-
空间建模是什么意思?空间建模入门全解析 2025-09-27 10:36:44
-
空间建模入门指南:从空间建模基础到实用解析 2025-09-27 10:18:02
-
mac qgis黑屏问题解析,mac qgis入门及常见疑难解答 2025-09-27 10:13:16
-
QGIS入门指南:qgis是做什么的、qgis下载安装及qgis怎么设置中文 2025-09-27 09:41:22
-
gis录入入门指南:GIS录入是什么及GIS文件录入规范解析 2025-09-27 08:48:41
-
mac qgis指南:qgis mac malware等常见问题全解答 2025-09-27 08:36:27
-
空间建模与应用技术全解,空间建模入门必看 2025-09-27 08:34:46
-
空间建模软件解析,空间建模入门全攻略 2025-09-27 08:30:03
-
mac qgis入门指南:mac qgis黑屏等常见问题解析 2025-09-27 08:25:45
-
mac qgis指南(含:qgis for mac m1下载地址) 2025-09-27 07:47:30
-
gis空间建模案例详解,全面掌握gis空间建模精髓 2025-09-27 07:35:01
-
mac qgis入门指南:mac gis与qgis download for mac解析 2025-09-27 07:12:39
-
空间建模软件哪个好用?空间建模入门全解析 2025-09-27 06:45:53
-
空间建模感悟解析,空间建模入门必读指南 2025-09-27 06:11:56
-
mac qgis指南:qgis mac malware、qgis mac not opening等全解 2025-09-27 06:05:06
-
gis空间建模入门指南,从gis做空间分析讲解 2025-09-18 08:22:30
-
空间建模与应用技术专业详解,空间建模入门必读 2025-09-18 07:48:01
-
gis空间建模工具全面解析,轻松掌握gis空间建模入门 2025-09-18 04:46:43
-
gis空间建模入门指南,从gis 建模基础讲解到实操 2025-09-18 04:41:56
热门标签
最新资讯
2025-09-28 10:30:49
2025-09-27 11:01:10
2025-09-27 10:36:44
2025-09-27 10:18:02
2025-09-27 10:13:16
2025-09-27 09:41:22
2025-09-27 08:48:41
2025-09-27 08:36:27
2025-09-27 08:34:46
2025-09-27 08:30:03