
做项目这几年被问得最多的问题之一就是怎么把在线底图和遥感影像结合起来用地图上的位置到底对应哪块真实地表正好前两天又用QGIS干了一整套活儿——加载天地图当底图再下载指定区域的哨兵2影像做分析。干脆把完整流程整理出来这次不藏私从申请天地图TK密钥到最终导出裁剪好的影像一步步说清楚。这套组合拳日常很实用特别适合测绘遥感、城乡规划、环境监测、农业估产这类经常需要“底图对位置、影像看现状”的场景。无论你是刚接触QGIS的新手还是已经用ArcGIS习惯的老手这篇文章都能帮你在半小时内把流程跑通。1. 为什么是QGIS配天地图这套组合先说结论再做细节。我日常做项目管理时最怕的不是数据算不出来而是底图不干净、坐标系对不上、数据来源说不清。选QGIS配天地图恰好能把这三件事一次解决。1.1 天地图能给你什么天地图是国家地理信息公共服务平台面向公众提供地图服务。它不是某个商业公司的私有产品而是官方背景的公共服务这一点在项目验收、成果汇报时特别占优势。你不用担心版权纠纷也不用担心某天在线地图突然变更接口导致你的项目白做。天地图提供几类常用底图影像底图就是卫星照片拼接图更新频率较高、矢量底图边界、道路、地名等要素、地形晕渲图、全球境界线等。对我们做遥感的人来说最常用的是影像底图加中文注记层。首页上的影像底图覆盖范围包括全国放大到城市级别依然清晰用作参考底图完全够。还有一点很重要天地图服务在国内访问稳定不需要额外设置。作为起草方案、现场踏勘、数据核对时的底图它比很多国外在线地图更符合实际国情。1.2 为什么我推荐在QGIS里干这件事QGIS是开源跨平台桌面GIS软件对它最中肯的评价是小、快、灵。它是免费的体积比同等功能的商业软件小很多启动速度快加载在线瓦片图源更是几分钟的事。没有复杂的许可管理和联网授权装完即用。ArcGIS的用户可能不服气我加载天地图也有专门教程。但实际操作中你会发现ArcGIS加载在线服务要么装补丁、要么配代理步骤比QGIS繁琐。QGIS这边新建一个XYZ连接把天地图的URL粘进去图层就出来了。整个操作学习成本极低对初学者非常友好。再加上QGIS的生态插件丰富下载遥感影像、波段合成、裁剪导出都能在同一软件里完成不用在多款软件之间反复切换。对做遥感预处理的人来说这就省掉了大量格式转换和数据搬运的时间。1.3 环境准备先装QGIS。到官网下载长期支持版目前常用3.28 LTR或者更新的稳定版安装时一路下一步就行。Windows、macOS、Linux都有对应版本我这边Windows环境实测最舒服内存占用约1GB普通办公电脑也能带得动。装完以后建议做两件事在“设置→选项→网络”里确保网络访问正常然后打开“扩展→管理并安装扩展…”确认插件库能列出一堆插件说明环境没问题。后面我们要用到的Semi-Automatic Classification插件也是从这里装。2. 天地图在线底图加载流程这是整篇文章里最容易被卡住的环节网上一搜“天地图tk”问的人特别多。所谓tk就是用户的访问密钥Key相当于你调用天地图服务的通行证。没有tk地图服务就拒绝给你返回瓦片。2.1 获取天地图TK密钥的完整步骤打开天地图官方网站tianditu.gov.cn先在右上角注册账号。注册时需要手机验证部分地区可能要求实名认证这一步按提示操作即可。登录以后找到“开发人员”或“控制台”入口进入“应用管理”创建一个新应用。应用类型建议选“浏览器端”因为QGIS加载在线瓦片本质上就是浏览器请求图片。创建时可能需要填应用名称、应用描述绑定域名这一栏如果只是自己本地用填localhost或者*都可以视审核要求而定有的环境填任意域名也能通过。提交之后系统会给你生成一个Key长度大概在30个字符左右这就是后面URL里tk后面的值。注意这个Key刚申请时可能不是立刻生效我遇到过等了几小时才正常的所以如果加载黑屏别急着重新申请等一会儿再试。2.2 在QGIS中添加影像底图XYZ Tiles方法拿到tk之后打开QGIS在左侧浏览器面板里找到“XYZ Tiles”右键选择“新建连接”。弹出的窗口里填两项名称随意比如写“天地图影像”URL粘贴下面的模板https://t0.tianditu.gov.cn/img_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERimgSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX{z}TILEROW{y}TILECOL{x}tk你的TK点击确定以后把“天地图影像”拖到画布上正常情况下影像底图就出来了。这个URL是天地图标准的WMTS服务地址QGIS会自动把{z}、{y}、{x}替换成当前视野对应的行列号和缩放级别所以整个加载过程非常顺滑。如果URL不可用检查一下tk是不是粘贴完整或者把t0换成t1、t2试试——天地图提供了多个瓦片子域作用类似负载均衡个别子域临时抽风时换一个就能恢复正常。2.3 叠加中文注记和矢量底图光有影像底图还不够地名信息对项目表达很重要。同样的方法再新建一个XYZ连接URL换成注记层https://t0.tianditu.gov.cn/cia_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERciaSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX{z}TILEROW{y}TILECOL{x}tk你的TK这里的关键是把LAYER参数从img换成cia。img是影像cia是中文注记vec是矢量线划。有人加载注记层以后发现字体太大或遮挡影像可以在图层透明度里调整注记层的透明度或者在渲染属性里做透明度百分比让影像信息透过来。我一般会在图层管理器里建一个“天地图组”把影像底图和注记层放进去。这样在后续加载遥感影像时组一勾选一放开整组底图就能统一控制显隐操作效率提升不少。2.4 坐标系与偏移的坑4490、4326、3857怎么选这是新手最容易懵的地方。天地图的瓦片服务用的是CGCS2000坐标系对应的EPSG代码是4490它和WGS84EPSG:4326在大多数场景下差别小到可以忽略。QGIS里新建的XYZ图层默认可能被识别成EPSG:3857也就是Web墨卡托如果项目本身也是3857那加载出来一般不会偏移。但如果你把天地图影像和某个外地下载的矢量数据叠加发现对不上大概率就是坐标系不一致。解决办法右键图层→图层属性→源→设置图层坐标系把影像底图手动指定为EPSG:4326或EPSG:4490然后右键图层→导出→另存为选择目标坐标系重新导出一次让影像真正“对齐”到项目坐标系里。实际项目中我比较推荐的做法是新建工程时就把工程坐标系设置成你最终出图需要的坐标系比如做中低纬度区域用UTM投影做全国尺度用Albers等积投影。在线底图只是参考QGIS会实时做动态重投影只要底图的原始坐标系识别正确显示上基本不会出问题。3. 下载指定区域遥感影像的完整路径以Sentinel-2为例底图就位后下一步是拿当前真实验收数据。好多人一说到遥感影像先想到去买高分辨率商业影像但日常分析其实免费数据完全够用。以Sentinel-2哨兵2为例它的多光谱成像仪能提供10米空间分辨率的多光谱数据重访周期5天完全免费。3.1 为什么拿哨兵2当示例哨兵2是欧洲航天局哥白尼计划的对地观测卫星携带多光谱成像仪覆盖可见光/近红外/短波红外波段其中B2蓝、B3绿、B4红、B8近红外这几个波段分辨率是10米。对有植被分析、水体提取、土地利用分类需求的场景来说10米分辨率在城市和乡村调查中基本够用免费开放数据质量也很稳。更重要的是哨兵2官网直接提供L2A产品大气校正后的地表反射率产品。这意味着我们拿到的数据已经完成了大气校正这一步省去很多预处理麻烦。你要做的事情就可以简化为下载、波段合成、裁剪、导出。3.2 方案一在QGIS里直接下载影像SCP插件方式QGIS有个老牌插件叫Semi-Automatic Classification Plugin简称SCP它就内置了Sentinel-2数据的下载工具。打开“扩展→管理并安装扩展…”搜索“Semi-Automatic Classification”安装成功后菜单栏会出现一个“SCP”入口。在SCP面板里找“Download products”首次使用需要登录一个数据账号。你可以注册一个USGS账号或者直接用哥白尼数据空间Copernicus Data Space的账号这两个平台都免费。登录后在面板里设置数据集为Sentinel-2填好时间范围和最大云量百分比然后用面板上的画框工具画出要下载的研究区点击搜索符合条件的影像就列出来了。勾选需要下载的产品点击Download开始下载。这里要注意SCP下载大体积的L2A产品时速度受网络影响较大如果下载中断可以尝试直接在浏览器里下载更稳妥。SCP的优势是下载完的影像带有元数据信息方便后续直接打开浏览。3.3 方案二从官方数据平台手动下载再拖进QGIS最稳定的方法如果SCP下载不稳或者你不想登录插件直接打开浏览器访问哥白尼数据空间或USGS EarthExplorer同样可以按区域和时间筛选哨兵2影像。我的习惯是先在QGIS里打开天地图找到目标区域用“工具→临时草图”快速画一个面状范围记录它的经纬度边界。然后打开哥白尼数据空间在地图上框选同样范围或者直接填经纬度坐标范围设置时间、云量20%搜索产品列表。下载时选择L2A产品通常每个产品是一个压缩包解压后里面包含很多波段文件B01、B02、B03、B04、B08等格式是JPEG2000后缀为.jp2。把这些jp2文件直接拖进QGIS窗口就能加载。文件较多时建议建个文件夹统一管理文件名本身已经带有波段信息按名字选择即可。3.4 波段合成真彩色与假彩色单个波段加载进来默认是灰度图看起来就是黑白照片。要合成真彩色需要把B4红、B3绿、B2蓝三个波段按顺序合在一起。QGIS里最简单的合成方式是“虚拟光栅”。在菜单“栅格→其他→构建虚拟光栅Build Virtual Raster”里按顺序添加B4、B3、B2这三个文件设置输出文件名点击运行。生成的虚拟栅格会自动以RGB方式显示出一张彩色遥感影像。想显示成假彩色比如植被检测用就把输入顺序换成B8近红外、B4红、B3绿。这样植被会因为近红外反射极强而显示成亮红色水体和裸地颜色差异也会非常明显。日常项目里我经常用假彩色来快速识别植被覆盖范围和异常区域。如果合成后你看不到彩色而是显示成三波段灰度那就在图层属性→符号系统里把渲染类型改成“多波段彩色”并正确指定红、绿、蓝各自对应的波段号。3.5 按指定区域裁剪并导出影像下载好了波段合成也做了最后才是“下载指定区域遥感影像”的核心操作——裁剪出我们真正需要的那一块并导出成一个干净的GeoTIFF。先准备裁剪范围。如果是某个行政区直接导入已有的行政边界shp文件如果没有边界可以新建一个临时矢量图层用“描绘”工具在画布上沿着天地图底图描绘出目标范围。这里注意临时矢量图层要选择适当坐标系最好和最终导出影像的坐标系一致。然后打开“栅格→提取→按掩膜图层裁剪栅格Clip Raster by Mask Layer”输入图层选虚拟栅格合成后的影像掩膜图层选刚才的矢量面输出文件路径填一个GeoTIFF文件名点击运行。几秒钟后指定区域的遥感影像就裁剪好了。如果你还嫌10米影像在某些应用里不够精细可以对导出的影像做重采样或者叠加天地图影像底图做目视解译。真正常用的做法是裁剪后再做一次栅格转换“栅格→转换→转换Translate”设置输出类型为Byte应用0到255的拉伸系数把原本16位浮点的大体积影像压缩成8位RGB的普通图片方便在其他软件里直接读取和汇报展示。4. 常见问题排查手册实际操作中问题永远比教程多。我按踩坑频率排一个常见问题表格你照着排查基本能解决大部分异常。现象可能原因解决方法天地图图层黑屏/白屏不出图TK密钥无效或未生效检查URL里tk是否完整CtrlR刷新画布稍等或换t0/t1/t2子域天地图只出部分瓦片其余空白网络不稳定导致瓦片下载失败放大缩小画布触发重新加载或清理瓦片缓存设置→选项→网络资影像底图加载出来但注记层没有注记层URL的LAYER参数写错确保是cia而不是img检查URL参数大小写影像与天地图底图位置对不上坐标系不一致检查图层CRS统一到EPSG:4326或项目坐标系必要时导出重投影SCP插件搜索不到影像账号未登录或时间范围设置太窄检查登录状态扩大时间范围关闭云量筛选再搜索SCP下载一直停在0%或中断网络连接不稳定服务端限速改用官方数据平台浏览器手动下载波段合成后显示全灰或全黑渲染类型不对或数据值范围未拉伸在多波段彩色渲染里重新指定波段顺序并把对比度拉伸设为“拉伸到当前数据集”裁剪时报错“Input layer has no CRS”待裁剪图层缺少坐标系定义先右键图层属性设置正确的CRS再执行裁剪导出后影像非常大加载卡顿16位浮点数据未压缩用Translate转换为Byte类型输出压缩为GeoTIFFLZW体积能缩小5到10倍针对黑屏问题多说一句。天地图Key正式启用后有时加载第一次会黑屏但缩放到其他级别它自己又会刷新出来。这多半是客户端瓦片缓存调度的问题在图层上右键刷新或者重新缩放就能触发瓦片重取。QGIS的缓存清理路径在“设置→选项→网络→缓存设置”有强迫症的话定期清理缓存也能减少怪问题。另外天地图在线底图属于影像瓦片做大范围打印输出时清晰度不如原始影像数据。如果项目要求极高清出图记得把在线底图定位成“参考”把哨兵2或者更高分辨率影像定位成“数据源”两者分工才科学。5. 一些实战心得和扩展玩法流程跑通了该上点实战心得。这些经验不是教程里会写的但恰恰能帮你少走大段弯路。5.1 图层组织与项目模板保存我每次新建一个遥感项目都会先建一个“01_底图”组把天地图影像、中文注记放进去再建一个“02_影像”组放哨兵2合成后的影像和裁剪结果再建一个“03_辅助”组放研究区面、采样点、参考线等。看似简单的图层分组实际能节省大量重复劳动。尤其是同一区域可能需要反复下载、反复出图的项目图层顺序一旦确定每次只需替换影像数据底图和标注位置都不用动。配置好后用菜单“项目→另存为模板”把这个结构保存为模板。下次新项目直接从这里起步。5.2 从裁剪影像到NDVI计算影像裁剪完之后千万别止步于“看一眼”。用栅格计算器做一个植被指数整个数据才有分析价值。在QGIS菜单“栅格→栅格计算器”里输入公式(NIR - RED) / (NIR RED)其中NIR是近红外波段B8RED是红光波段B4。生成的结果就是归一化植被指数范围在-1到1之间正值越高说明植被越茂盛负值多为水体或裸地。这个指数在农作物长势监测、森林覆盖评估、环境调查里应用极广而且从你下载的同一景影像里直接做不需要额外找其他数据。原理也很简单健康的绿色植被对红光吸收强、对近红外反射强所以近红外减红光再除以两者之和就能把植被信号突显出来。对使用了L2A级地表反射率产品来说这个计算是可以直接做的不涉及大气校正问题。5.3 最后一个小技巧CSV坐标点快速落图出图汇报时经常需要把经纬度点位标在底图上。以前我会一个一个手动添加后来发现QGIS里可以直接导入CSV文本在浏览器面板右键“分层设色”选择“添加矢量图层”文件类型选“CSV”设置X字段为经度、Y字段为纬度坐标系选EPSG:4326点击添加所有点就一次性显示在天地图上了。这个技巧配合天地图底图和哨兵2影像做现场踏勘前的“室内预判”效率极高。比如你要跑几十个外业点位先在室内把点位全部落到天地图上再叠加哨兵2影像看周围地物特征提前规划路线到了现场直接按顺序采样能省下大半天时间。我个人在实际操作中的体会是工具本身没有高下关键是流程能不能跑通、数据能不能反复用。QGIS加载天地图、下载哨兵2影像这条链路我用了大概两年从最初的三四小时摸索到现在的十几分钟出结果熟能生巧。建议你今天就拿自己熟悉的区域试一遍跑通一次后面就是复制粘贴的事了。