WMS 是什么?卫星影像与 GIS 中如何接入 WMS 服务
WMS(Web Map Service,Web 地图服务)是 OGC 制定的标准接口,客户端按请求参数向服务端索取一张地图图片,而不是原始栅格数据。它适合把卫星影像、底图或专题图层直接叠加到 GIS 软件、网页地图或报表中;如果你需要的是可计算的像元值、要自己做波段运算或机器学习,WMS 通常不是正确选择,应改用 WCS 或平台提供的分析 API。Sentinel Hub 在其卫星影像基础设施中提供“重投影 WMS 服务”,用于集成到第三方工具。
WMS 在卫星影像与 GIS 中的角色
WMS 解决的是“看得见”的问题:服务端负责数据归档、投影转换、渲染和切片,客户端只发一个带参数的 HTTP 请求,拿回 PNG、JPEG 或 GeoTIFF 图片。
Sentinel Hub 对这类基础设施的描述是:面向服务的卫星影像基础设施处理卫星影像归档的全部复杂性,并通过易于集成的 Web 服务提供给最终用户。其列出的能力包括:
- 网页上的全分辨率预览
- 时间延时(time-lapse)功能
- 时间序列统计信息服务
- 针对选定区域或点的分析工具
- 基于脚本的即时新产品定义
- 重投影 WMS 服务,用于集成到第三方工具
- 用于高级功能集成的 API
也就是说,卫星影像平台把“重投影”这一步放在服务端完成,你拿到的 WMS 图层已经是你需要的坐标系,可以直接叠加到自己的工具里。
WMS 与 WMS-T、WMTS、WCS 的区别
选错服务类型是接入失败最常见的原因之一。用同一组维度对比:
| 服务 | 返回内容 | 关键维度 | 典型用途 |
|---|---|---|---|
| WMS | 按请求实时渲染的地图图片 | 图层、范围、宽高、坐标系、样式 | 叠加显示、出图 |
| WMS-T | 同上,但支持时间参数 | 在 WMS 基础上增加时间 | 查看某一时相的影像 |
| WMTS | 预切好的瓦片 | 瓦片矩阵集、层级、行列号 | 网页地图快速浏览 |
| WCS | 原始栅格数据(像元值) | 范围、分辨率、波段 | 定量分析、波段运算 |
判断方法很简单:要“看图”用 WMS/WMTS,要“算数”用 WCS。需要按日期切换影像时,确认服务是否支持时间维度(WMS-T),否则请求里带时间参数也不会生效。
在 GIS 或网页中接入 WMS 的典型步骤
不同客户端界面不同,但需要准备的信息是一致的。以把卫星影像 WMS 叠加到 GIS 为例:
- 获取服务地址(GetCapabilities 入口)。这是服务的根 URL,用来读取服务元数据。
- 读取能力文档。从 GetCapabilities 响应中确认可用图层名、支持的坐标系(CRS)、支持的 WMS 版本和是否支持时间维度。不要凭猜测填图层名。
- 在客户端新建 WMS 连接,填入服务地址,选择版本,加载图层列表。
- 选择图层并设置坐标系,确保与你的项目坐标系一致;平台提供重投影 WMS 服务时,优先选你项目使用的 CRS,减少偏移问题。
- 如为时间序列影像,设置时间参数,指定要查看的日期或时间范围。
- 验证:先请求一个小范围、低分辨率的图,确认能返回图片且位置正确,再放大范围或提高分辨率。
预期结果是:客户端发出 GetMap 请求,服务端返回一张带地理参考的地图图片,叠加在底图上位置正确。
常见排查:图层不显示或位置不对
- 图层不显示:先单独在浏览器里请求一次,确认是服务端问题还是客户端配置问题;检查图层名是否与能力文档一致、宽高参数是否超出限制。
- 坐标系不匹配:请求的 CRS 不在服务支持列表内,或客户端把返回图片按错误范围放置。改用服务声明支持的 CRS,或使用平台的重投影 WMS 服务。
- 时间参数缺失:时间序列图层未带时间参数时,可能返回默认时相或空图。确认服务是否支持时间维度,并按要求格式传入。
- 请求超限:单次请求范围过大或分辨率过高会被拒绝或超时。缩小范围、降低宽高,或改用瓦片服务(WMTS)。
什么时候该用 WMS,什么时候不该用
适合用 WMS:需要把卫星影像快速叠加到 GIS、网页或报表中做展示和比对;希望服务端处理投影和渲染;不想自己管理影像归档、存储、解压、元数据和传感器波段。
不适合用 WMS:需要读取像元值做统计分析、指数计算或模型训练;需要离线保存原始数据。这些场景应使用 WCS 或平台的分析 API。
Sentinel Hub 提供 30 天免费试用,包含 Planet Sandbox 数据和 Planet Insights Platform 的 API 级访问;其页面也提供“将影像导入你的 GIS 应用(使用标准 OGC Web 服务)”的入口,可申请试用。具体价格、配额和商用条款以其官网为准。