目前市面上有多种基于互联网的在线地图服务,但是这些服务在互操作接口上缺少相应的行业规范,从而导致了Web地图服务的互操作的困难性。在GIS行业日渐蓬勃的今天,为了解决这个问题,GIS行业最主要的规范的制定者:Open Geospatial Consortium,开发了基于WEB地图服务的互操作规范——Web Map Service。
Web Map Service主要用于提供共享地图数据服务,能动态地响应客户程序的请求,将用户请求处理,转换成便于用户直观理解的地图图像、指定坐标点的要素信息、以及地图的功能说明信息。
Web Map Service规范主要定义了三个结构的操作,GetCapbilities、GetMap、GetFeatureInfo。其中,前两个接口是必须实现的。
---------------------------------------------------------------------------------------------------------------------------------
GetCapbilities接口用于查询WMS服务范围的信息,包括支持的服务、支持的格式、空间坐标、地图列表、地图样式等。它主要的目的是使客户端在使用GetMap请求前可以对WMS服务有一个大概的了解,从而设置正确的参数。
GetCapbilities请求样例如下所示:http://xxx.com/geoserver/awms?version=x.x.x&request= getcapbilities。返回是一个XML文件,包括Service、Capability等部分,详细信息可以查看返回XML文件。
GetCapabilities的具体请求参数如下表:
---------------------------------------------------------------------------------------------------------------------------------
GetMap接口用于向服务器请求一张地图图像数据。在它的请求中,可以控制地图的图层、图层绘制的样式、指定地图的坐标投影代码、控制请求地图的范围、像素宽度和高度、以及返回 地图图像的格式。
GetMap的请求样例如下所示:http://xxx.com/geoservice/wms?version=x.x.x&request=getmap&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,-67,50&width=400height=200&format=image/png
如果参数设置错误,将返回一个XML文件来描述错误信息。如下所示:<ServiceExceptionReport vertion=”x.x.x”>
<ServiceException code=””>
WIDTH and HEIGHT incorrectly specified
</ServiceException>
</ServiceExceptionReport>
GetMap的请求参数描述如表所示:
---------------------------------------------------------------------------------------------------------------------------------
GetFeatureInfo它是一个可选操作,接口用于查询用户指定对象的属性信息。它的实现依赖于客户程序在WMS服务器在先前返回的地图。只有用户指定了该地图的某一空间实体,并且该实体所在图层具有queryable=”1”属性才能支持该请求。如果一个WMS不支持该请求,则会返回一个XML文件描述错误信息。
GetFeatureInfo的请求样例如下所示:
http://xxx.com/geoserver.wms?version=x.x.x&request=getfeatureinfo&layers=topp:states&styles=population&SRS=EPSG:4326&bbox=-125,24,-67,50&width=400height=200&format=text/html&query_layers=topp:states。
此请求返回一个HTML文档来描述对象,如下所示:
Results for FeatureType ‘states’:
——————————
The_geom = [GEOMETRY(Multipolyon) with 153 points]
STATE_NAME = Beijing
STATE_FIPS = 04
SUB_REGION = Mtn
STATE_ABBR = AZ
LAND_KM = 294333.462
WATER_KM = 942.772
PERSONS = 3665228.0
FAMILIES = 940106.0
HOUSHOLD = 1368843.0
MALE = 1810691.0
FEMALE = 1854537.0
WORKERS = 1358263.0
DRVALONE = 1178320.0
CARPOOL = 239083.0
PUBTRANS = 32856.0
EMPLOYED = 1603896.0
UNEMPLOY = 123902.0
SERVICE = 455896.0
MANUAL = 185109.0
P_MALE = 0.494
P_FEMALE = 0.506
SAMP_POP = 468178.0