目录

上一个主题

1.7. VII. WFS-要素 Web 服务

下一个主题

1.9. IX. WCS-栅格 Web 服务


1.8. VIII. WMS-地图 Web 服务

1.8.1. 概述

WMS(OpenGIS® Web Map Service)当前版本是 1.3.0。WMS 标准定义了一些操作,这些操作允许用户在分布式的环境下通过 HTTP 对空间数据进行出图等操作。

1.8.2. WMS种类与操作

比起 WFS,WMS 的操作要简单的多:

1.GetCapabilities(获取服务中的要素类及支持的操作)

2.GetMap(获取地图)

3.GetFeatureInfo(根据地图上的像素点获取更详细的要素信息,类似 Identify 功能)

同样,这些操作并不是必须全部实现,而是实现全部或部分。根据所支持的

操作不同,WMS 可以分为 2 类:

1.Basic WMS(就是最常被提及的 WMS,必须支持 GetCapabilities/ GetMap 操作)

2.Queryable WFS(必须在 Basic WMS 基础上加上 GetFeatureInfo 操作)

关于服务涉及的基本元素,可以参考前面的章节:《服务涉及的基本元素》。

WMS 中叧规定了 KVP 格式的请求,因此下面介绉一下 WMS 的请求和响应内容。

1.8.3. GetCapabilities 操作

GetCapabilities 操作需要以下的参数:

参数

是否必须

VERSION

SERVICE=WMS

REQUEST=GetCapabilities

FORMAT

UPDATESEQUENCE

以下是一个 WMS 的 GetCapabilities 操作示例:

http://www.someserver.com/wms?

VERSION=1.3.0&

SERVICE=WMS&

REQUEST=GetCapabilities

这样的请求返回的响应示例:

1.8.4. GetMap 操作

GetMap 操作需要以下的参数:

参数

是否必须

VERSION

REQUEST=GetMap

LAYERS

STYLES

CRS

BBOX

WIDTH

HEIGHT

FORMAT

TRANSPARENT

BGCOLOR

EXCEPTIONS

TIME

ELEVATION

以下是一个 WMS 的 GetMap 操作示例:

http://www.someserver.com/wms?

VERSION=1.3.0&REQUEST=GetMap&

CRS=CRS:84&BBOX=-97.105,24.913,-78.794,36.358&

WIDTH=560&HEIGHT=350&LAYERS=BUILTUPA_1M,COASTL_1M,POLBNDL_1M&

STYLES=0XFF8080,0X101040,BLACK&FORMAT=image/png&BGCOLOR=0xFFFFFF&

TRANSPARENT=TRUE&EXCEPTIONS=INIMAGE

该请求的响应就是一张图片。

1.8.5. GetFeatureInfo 操作

GetFeatureInfo 操作需要以下的参数:

参数

是否必须

VERSION

REQUEST=GetFeatureInfo

GetMap 请求参数

QUERY_LAYERS

INFO_FORMAT

FEATURE_COUNT

I

J

EXCEPTIONS

以下是一个 WMS 的 GetFeatureInfo 操作示例:

http://www.someserver.com/wms?

request=GetFeatureInfo&

VERSION=1.3.0&FORMAT=image/jpeg&

BBOX=-4.0325,-2.9078,40.5189,41.6436&

QUERY_LAYERS=Countries,Cities&

INFO_FORMAT=text/html

HEIGHT=400&WIDTH=400&

STYLES=&

I=290&J=246&

1.8.6. ArcGISServer对WMS的支持

ArcGISServer10中支持的WMS版本为最新的1.3.0。在ArcGISServer 中,叧需简单地勾选的Capabilities选项卡中可以选择支持WMS,如图21。

image0

图21ArcGISServer发布WMS服务

现在我们通过浏觅器直接发送请求获取一张劢态地图:

http://localhost:8399/arcgis/services/basemap/World/MapServer/WMSServer?

VERSION=1.3.0&REQUEST=GetMap&

CRS=CRS:84&BBOX=-180,-90,180,90&

WIDTH=720&HEIGHT=360&LAYERS=0,1,2&

STYLES=,,&FORMAT=image/png&

TRANSPARENT=TRUE

这个请求返回一张这样的图片,这和ArcMap中的配置是完全一致的:

image1

然后,我们模拟某个用户在图片上进行了一个点击,想看看点击处的点对象都有什么属性值,这时会有一个这样的请求发送到 WMS服务上:

http://localhost:8399/arcgis/services/basemap/World/MapServer/WMSServer?

VERSION=1.3.0&REQUEST=GetFeatureInfo&

CRS=CRS:84&BBOX=-180,-90,180,90&

WIDTH=720&HEIGHT=360&

INFO_FORMAT=text/xml&

QUERY_LAYERS=2&

I=593&J=100

这个请求返回如下的结果,很显然,刚才在地图上的北京附近进行了点击,

服务返回回来“Beijing”这个要素的所有属性:

<?xml version="1.0"?>

"http://www.esri.com/wms"

xmlns="http://www.esri.com/wms">

"2165" Shape="Null" CITY_NAME="Beijing"

GMI_ADMIN="CHN-BJN" ADMIN_NAME="Beijing" FIPS_CNTRY="CH" CNTRY_NAME="China"

STATUS="National and provincial capital" POP_RANK="1"

POP_CLASS="5,000,000 and greater" PORT_ID="0" LABEL_FLAG="1">