GetCapabilities
访问Web地图服务(Web Map Service,WMS)生成关于地理空间数据的“地图”,属于 OGC 发布的规范。地图是地理数据的可视化描述,而不是地理数据本身。Web地图服务提供了在互联网上通过Web客户端统一访问由地图服务器支持的接口。
基本Web地图服务提供 GetCapabilities
、 GetMap
、
GetFeaturelnfo
和 DescribeLayer
4个接口,用来支持创建和显示已注册和分层的、类似地图的视图信息,这些视图同时来自远程和异构的多个服务源。
当请求一个地图时,客户端可以指定在地图上显示的信息、图层样式、边界范围、投影或空间参照系以及输出格式、图像的尺寸、背景透明度及颜色等。当生成具有相同的BBox(边界矩形)、SRS(空间参照系)和尺寸的地图时,可以叠置这些地图以进一步生成复合地图。WMS支持分布式地图服务网络的创建,这样客户端可以生成自定义地图。
基本的Web地图服务主要提供以下功能:
层叠地图服务器将多个独立的地图服务器的内容聚合到一个服务器中,而且为其他服务器提供诸如输出格式转换、坐标变换等功能。
样式层描述器(Styled-Layer Descriptor,SLD)允许用户定义要素数据的符号,而不是既定的命名图层及其样式。SLD是对WMS的扩展,支持SLD的WMS服务从WFS获取要素,然后使用由用户提供的样式信息绘制地图。样式层描述器增加了基本WMS不支持的操作:
DescribeLayer
、 GetLegendGraphic
、 GetStyles
和 PutStyles
。
这里说明使用 MapServer 发布 WMS 服务。前面部分说明的,一个 Mapfile 对应一幅地图。通过 WMS 访问,则可以更加灵活地访问 Mapfile 中的图层信息。把 Mapfile 的地图设计功能,增强为服务功能。
由于每一个WMS是独立的,因此必须提供关于各自功能的描述。这种“服务元数据”使每客户机可以将合法请求公式化,并能够构造一个可查询的目录,以便引导客户机找到指定的WMSes。GetCapabilities
允许一个客户端(或客户代理)请求一个WMS表露其制图内容和处理功能。返回结果是一份XML文档,用来描述服务信息内容和可以请求的参数;在特定的WMS情况下,返回关于服务自身的一般信息以及可用地图的具体信息。
这个 Mapfile 配置了 WMS 服务。Mapfile mfb1.map
的内容为:
01 MAP
02 IMAGETYPE "PNG"
03 EXTENT -180 -90 180 90
04 SIZE 600 300
05 SHAPEPATH "/gdata"
06 IMAGECOLOR 255 255 255
07 WEB
08 METADATA
09 "wms_title" "WMS Demo Server"
10 "wms_onlineresource" "//webgis.cn/cgi-bin/mapserv?map=/owg/mfb1.map&"
11 "ows_onlineresource" "//webgis.cn/cgi-bin/mapserv?map=/owg/mfb1.map&"
12 "wms_srs" "EPSG:4269 EPSG:4326"
13 "wms_enable_request" "* !GetFeatureInfo"
14 END
15 END
16 LAYER
17 NAME "topo"
18 DATA "land_shallow_topo_8192.tif"
19 STATUS OFF
20 TYPE RASTER
21 PROCESSING "BANDS=1,2,3"
22 PROJECTION
23 "init=epsg:4326"
24 END
25 END
26 LAYER
27 NAME "states"
28 DATA "wcountry.shp"
29 STATUS OFF
30 TYPE POLYGON
31 CLASS
32 NAME "The Upper Great Lakes States"
33 STYLE
34 COLOR 232 232 232
35 OUTLINECOLOR 32 32 32
36 END
37 END
38 END
39 END
与前面 mfa1.map
相比:
6 | IMAGECOLOR 255 255 255 | 6 | IMAGECOLOR 255 255 255 | ||
n | n | 7 | WEB | ||
8 | METADATA | ||||
9 | "wms_title" "WMS Demo Server" | ||||
10 | "wms_onlineresource" "//webgis.cn/cgi-bin/mapserv?map=/owg/mfb1.map&" | ||||
11 | "ows_onlineresource" "//webgis.cn/cgi-bin/mapserv?map=/owg/mfb1.map&" | ||||
12 | "wms_srs" "EPSG:4269 EPSG:4326" | ||||
13 | "wms_enable_request" "* !GetFeatureInfo" | ||||
14 | END | ||||
15 | END | ||||
7 | LAYER | 16 | LAYER | ||
n | 8 | NAME "world-country" | n | 17 | NAME "topo" |
18 | DATA "land_shallow_topo_8192.tif" | ||||
19 | STATUS OFF | ||||
20 | TYPE RASTER | ||||
21 | PROCESSING "BANDS=1,2,3" | ||||
22 | PROJECTION | ||||
23 | "init=epsg:4326" | ||||
24 | END | ||||
25 | END | ||||
26 | LAYER | ||||
27 | NAME "states" | ||||
9 | DATA "wcountry.shp" | 28 | DATA "wcountry.shp" | ||
12 | CLASS | 31 | CLASS | ||
t | 13 | NAME "World Countries" | t | 32 | NAME "The Upper Great Lakes States" |
14 | STYLE | 33 | STYLE |
注意这里的版本 1.3.0
。 OGC 的 WMS 有 1.1.1
与 1.3.0
两个主要版本。如果用 1.1.1
,访问后可能会提示保存文件,保存后会发现是一个 XML 格式的文件。而用 1.3.0
,则会直接在浏览器中打开。
GetCapabilities
访问http://webgis.cn/cgi-bin/mapserv?map=/owg/mfb1.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
MapServer 最开始就支持返回地图,可以使用 mode=map
参数。