GetFeatureInfo 请求 |
GetFeatureInfo 操作是假设用户通过 GetMap 操作获得一张地图图片后,点击该图片上的一个点来查询该图片上指定地点的地物信息。但是由于 WMS 协议是无状态的,WMS 服务器并不知道客户端执行 GetFeatureInfo 时所“点击”的地图图片的信息。因此,GetFeatureInfo 操作的参数中需要包含 GetMap 操作的几乎所有的请求参数(除 VERSION 和 REQUEST)来确保与 GetMap 操作获取的地图一致。
GetFeatureInfo 操作的主要请求参数如下表所示:
表1 GetFeatureInfo 操作请求主要参数
请求参数 | 是否必需 | 描述 |
VERSION=version |
是 |
请求版本号。 |
REQUEST=GetFeatureInfo |
是 |
请求名称。 请求 GetFeatureInfo 操作,请求名称需要设为“GetFeatureInfo”。 |
LAYERS=layer_list |
是 |
同 GetMap。 |
BBOX=minx,miny,maxx,maxy |
是 |
同 GetMap。 |
WIDTH=output_width |
是 |
同 GetMap。 |
HEIGHT=output_height |
是 |
同 GetMap。 |
QUERY_LAYERS=layer_list |
是 |
待查询的图层列表,图层之间以逗号分隔。 |
INFO_FORMAT=output_format |
否 |
要素信息的返回格式(MIME 类型)。 可以为 application/vnd.ogc.wms_xml , application/geojson , text/xml , text/html。 |
FEATURE_COUNT=number |
否 |
要返回信息的要素的数量(默认为1)。 以(X, Y)为中心点,根据 GetMap 操作中的请求参数 BBOX,Width 和 Height 确定初始查找范围半径,对指定的查询图层进行查找。如果查询返回结果小于用户指定的 number 值,将查找半径扩大一倍继续查找,如果查询结果数目满足用户要求返回的要素数目,返回结果,否则继续扩大半径。当查找半径达到初始搜索半径的8倍时,终止查询,返回查询结果,进入下一图层的查询。 图层的查询顺序与待查询图层列表中的顺序一致。 |
X=pixel_column |
是 |
以像素表示的要素 X 坐标(自左上角测量为0)。 |
Y=pixel_row |
是 |
以像素表示的要素 Y 坐标(自左上角测量为0)。 |
EXCEPTIONS=exception_format |
否 |
WMS 的异常错误报告格式(默认为 application/vnd.ogc.se_xml)。 |
Vendor-specific parameters |
否 |
可选的试验性参数。 目前 SuperMap 还没有实现该功能。 |
说明:参数的大小写不是必须的,请求参数的顺序也可以任意顺序排列。
GetFeatureInfo 操作的请求方式如下:
<ServiceRoot>?VERSION=version&REQUEST=GetFeatureInfo&SRS=&layers=&STYLES=&BBOX=&WIDTH=&HEIGHT=&QUERY_LAYERS=&X=&Y=
ServiceRoot 为服务的 URI 根目录,请参见 服务的 URI 设置。
例如,本机 SuperMap iServer WMS 1.1.1 服务启动成功之后,访问 GetFeatureInfo 操作的 URI 是:http://localhost:8090/iserver/services/map-world/wms111/世界地图_Day?VERSION=1.1.1&REQUEST=GetFeatureInfo&SRS=EPSG:4326&layers=0.8,0.11&STYLES=&BBOX=-180.0,-90.0,180.0,90.0&WIDTH=800&HEIGHT=400&QUERY_LAYERS=0.11&X=650&Y=150。