今天我们讲一下使用 mapserver 发布 OGC 的三大网络地图服务的最后一个 - WCS,wcs 主要是规定了通过网络提供访问 coverage 数据的标准,那么什么是 coverage 数据呢? 狭义的说,可以认为 mapserver wcs 中发布的 coverage 数据就是卫星影像 或者 dem。
广义上说,coverage 数据主要是指时空现象的数字表示,可以是多维的,例如一维的传感器时间序列信号,二维的卫星影像,三维的 x/y/t 格式的“图像时间序列”,或者 x/y/z 格式的三维地理断层数据,四维的 x/y/z/t 格式的数据,数据中既包含 x、y、z坐标信息,还包含时刻信息。常见的 coverage 数据有:航拍图、土地覆盖数据、DEM 等,常用的数据格式有:GeoTIFF(扩展名为 .tif)、NetCDF、HDF-EOS 或者 NITF。
文中名词: openlayers3 === ol3
本文尝试发布北京地区的 pm10 分布情况,数据下载于“地理空间信息云”,本文的数据经过在软件中重新渲染,并且重新投影到 epsg:3857 坐标系下。发布后的结果如下:
mapserver 发布 WCS 配置
与配置 wms 和 wfs 一样,mapserver 发布 wcs 同样需要修改对应的 mapfile 文件,增加全局的 WEB 对象的 METADATA 子对象的键值对,但是 wms 和 wfs 都是针对矢量数据,如 ESRI 的 shapefile 格式,而 wcs 主要是针对栅格格式,所以 mapfile 中图层 type 需要设置栅格,数据源也要使用栅格格式。所以,mapfile 文件需要满足如下条件,对应的图层服务才会拥有 wcs 的能力:
- 图层的数据源是栅格(raster)数据(如 GeoTIFF 或者 Erdas Imagine 格式)
- 图层名(layer name)必须设置,图层类型(layer type)值必须是 RASTER
- metadata
- WEB metadata 或者 LAYER metadata 的 “wcs_enable_request” 参数必须设置
- WEB metadata 的 “wcs_label” 参数必须设置
- LAYER 对象的 metadata 中,”wcs_label” 、”wcs_rangeset_name” 、”wcs_rangeset_label” 必须设置
- MAP对象、 LAYER对象的 PROJECTION 对象都必须设置,这里LAYER的 PROJECTION 并不会继承 MAP,所以