Appearance
WCS
平台在每个服务的 MapServer 之下提供 WCS 2.0.1(Core、KVP 协议绑定、GeoTIFF 编码、CRS 扩展与 Scaling 扩展),用于按原始分辨率下载栅格数据,例如高程、遥感影像。启用方式、API Key 与异常的通用规则见 OGC 服务概览。
地址与启用
- 地址:
https://map-demo.geobridge.cn/geobridge-mapserver/rest/geodata/services/<服务路径>/MapServer/WCS - 能力文档:
…/WCS?SERVICE=WCS&REQUEST=GetCapabilities - 发布时勾选 WCS(不默认勾选):图层发布只对栅格图层提供;地图发布在地图含栅格图层时提供。未启用时返回 404「服务未启用 WCS」。
- 请求方式:GET(KVP),或 POST 表单(与查询参数合并,同名以表单为准)。不支持 XML 请求体。
- API Key 级别的服务在地址后加
token=gb_xxx…(能力文档中的操作地址会带回token),或用请求头X-GeoBridge-Token。
开启前请确认
WCS 返回的是原始栅格数据而不是渲染后的图片,公开与「API Key」级别的服务开启后,任何持有地址(或 Key)的客户端都可以下载数据。
覆盖
- 服务中每个可用的栅格图层是一个覆盖(矢量图层请用 WFS)。覆盖标识
CoverageId的生成规则见名称规则,与 WMS DescribeLayer 给出的一致。 - 原生坐标系为栅格数据自身的坐标系,网格为数据的原始像元网格。原生坐标系没有 EPSG 编号的栅格不列出。
- 坐标轴标签按坐标系的官方轴序:地理坐标系为
Lat Long(纬度在前),投影坐标系为E N。请求中的轴标签不区分大小写,另接受别名:Lat、Latitude、N、Y、Northing与Long、Lon、Longitude、E、X、Easting。
操作
| 操作 | 说明 |
|---|---|
GetCapabilities | 服务元数据(见能力文档的元数据)、支持的格式(image/tiff、image/png)与坐标系(各覆盖的原生坐标系与 4326、3857、4490),每个覆盖的标题、经纬度范围与原生范围。支持 AcceptVersions(2.0.1、2.0.0)、Sections、updateSequence |
DescribeCoverage | COVERAGEID(逗号分隔,可以多个):范围、轴标签、网格(行列数、原点、像元大小)、波段(名称 band1…、数据类型、取值范围、无数据值) |
GetCoverage | 取数据,见下文 |
除 GetCapabilities 外,SERVICE=WCS 与 VERSION=2.0.1(也接受 2.0.0)必填。
GetCoverage
…/MapServer/WCS?SERVICE=WCS&VERSION=2.0.1&REQUEST=GetCoverage&COVERAGEID=dem
&SUBSET=Lat(30,31)&SUBSET=Long(120,121)&SCALESIZE=Long(512),Lat(512)&FORMAT=image/tiff| 参数 | 规则 |
|---|---|
COVERAGEID | 必填,一次一个 |
SUBSET | 可重复,轴(低,高),* 为开放端;坐标在 SUBSETTINGCRS 中。裁剪结果与覆盖范围求交,在原生坐标系中按原生网格向外取整(输出即原始像元)。不支持切片写法 轴(值) |
SUBSETTINGCRS | SUBSET 坐标的坐标系,缺省为原生坐标系;http://www.opengis.net/def/crs/EPSG/0/n、urn:ogc:def:crs:EPSG::n、EPSG:n 与 CRS84 写法都可以 |
OUTPUTCRS | 输出坐标系,缺省为 SUBSETTINGCRS,再缺省为原生坐标系;与原生不同时重投影(最近邻) |
SCALEFACTOR、SCALEAXES、SCALESIZE、SCALEEXTENT | 缩放,至多给一个:SCALEFACTOR=2(两个方向的像元数都变为 1/2)、SCALEAXES=Long(2),Lat(4)、SCALESIZE=E(512),N(256)(输出像元数)、SCALEEXTENT=E(0:511),N(0:255)。轴可写坐标轴标签及其别名,也可写网格轴 i(列)、j(行)。缺省输出约为原生分辨率 |
FORMAT | image/tiff(缺省,GeoTIFF,带坐标系与地理参考)或 image/png(只用于 8 位、不超过 4 个波段的数据) |
INTERPOLATION | 只支持最近邻(http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbour),缺省即是 |
- 响应直接是文件本身(不是 multipart),
Content-Disposition: inline; filename="<覆盖>.tif"。 - 上限:输出像素总数默认不超过 4096 × 4096,未压缩数据量(宽 × 高 × 波段数 × 每样本字节)默认不超过 256 MiB,单边不超过 65536。超出时返回
InvalidParameterValue,请缩小范围或用SCALESIZE降低分辨率。本地部署可在.env中用GEOBRIDGE_OGC_WCS_MAX_PIXELS、GEOBRIDGE_OGC_WCS_MAX_BYTES调整。
客户端示例
QGIS:图层 → 添加图层 → 添加 WCS 图层,新建连接,URL 填 …/MapServer/WCS(API Key 级别加 ?token=gb_xxx…),选择覆盖后添加。
GDAL
bash
WCS='https://map-demo.geobridge.cn/geobridge-mapserver/rest/geodata/services/dem/MapServer/WCS'
gdalinfo "WCS:$WCS?version=2.0.1" # 列出覆盖
gdalinfo "WCS:$WCS?version=2.0.1&coverage=dem" # 查看覆盖:尺寸、坐标系、波段
# 按范围取回(坐标为覆盖的原生坐标系),GDAL 会自动发 SUBSET 与缩放参数
gdal_translate -of GTiff -projwin 11200000 1300000 11300000 1200000 \
"WCS:$WCS?version=2.0.1&coverage=dem" part.tif
# API Key 级别:把 token 加在查询串里
gdalinfo "WCS:$WCS?version=2.0.1&token=gb_xxx…"curl:直接下载 GeoTIFF。
bash
curl -o dem.tif 'https://map-demo.geobridge.cn/geobridge-mapserver/rest/geodata/services/dem/MapServer/WCS?SERVICE=WCS&VERSION=2.0.1&REQUEST=GetCoverage&COVERAGEID=dem&OUTPUTCRS=EPSG:4326&SCALESIZE=Long(1024),Lat(1024)'JS SDK 的 services.wcsUrl() 返回 WCS 入口地址。
异常
OWS 2.0 ExceptionReport(text/xml):
| 代码 | 情形 | 状态 |
|---|---|---|
MissingParameterValue | 缺少 SERVICE、REQUEST、VERSION、COVERAGEID | 400 |
InvalidParameterValue | SERVICE、VERSION 不对;格式不支持;使用了 MEDIATYPE、RANGESUBSET;缩放参数多于一个;输出超过上限 | 400 |
VersionNegotiationFailed | AcceptVersions 中没有 2.0.1 或 2.0.0 | 400 |
EmptyCoverageIdList | DescribeCoverage 没有 COVERAGEID | 404 |
NoSuchCoverage | 覆盖不存在(含矢量图层) | 404 |
InvalidAxisLabel | SUBSET 的轴标签不认识 | 404 |
InvalidSubsetting | SUBSET 写法不对、低值大于高值、同一轴重复、切片写法、与覆盖不相交 | 404 |
InvalidScaleFactor | 缩放因子不是正数 | 404 |
InvalidExtent | SCALESIZE 不是正整数、SCALEEXTENT 写法不对 | 404 |
ScaleAxisUndefined | 缩放的轴标签不认识 | 404 |
SubsettingCrs-NotSupported、OutputCrs-NotSupported | 坐标系不认识或范围无法转换 | 404 |
InterpolationMethodNotSupported | 最近邻以外的插值方法 | 404 |
OperationNotSupported | 未知操作 | 501 |
NoApplicableCode | 繁忙、超时、数据源不可用(503,带 Retry-After: 5);其他(500) | 503 / 500 |
覆盖、子集、缩放类错误按 WCS 2.0 规范为 404,不是 400。
已知限制
- 只支持二维网格覆盖;不支持切片(slicing)、波段子集(Range Subsetting)、最近邻以外的插值、时间与高程维度、multipart 响应、XML / SOAP 请求与 WCS 1.x。
- 原生坐标系没有 EPSG 编号的栅格不列出。
- 输出坐标系与原生不同时,缺省输出网格按原生像元数估算,不保证与原生分辨率完全相同。
- 波段的单位一律写为无量纲,平台不保存波段的物理单位。