WMS GetFeatureInfo 访问

GetFeaturelnfo 操作(可选)返回地图上指定点附近要素的信息。使用户可以点击像素查询要素的模式和元数据。

GetFeaturelnfo 是一个可选的操作。该操作只支持对于属性 queryable="1" (真)的图层。如果一个WMS客户端向不支持该操作的图层发出请求,将返回一个格式化的服务异常信息。GetFeaturelnfo 操作要求客户端指定查询的图层(或图层列表)以及要素信息的返回格式。

一个WMS可以提供可选的 GetFeaturelnfo 操作,对提供这种操作的WMS,称其地图为“可查询的”。客户机可以通过增加一个位置参数(如(X,Y)值,即距图片左上角的偏移量)或该点附近需要查询信息的要素的数量等参数,到所请求地图的URL中,就可以请求地图上相应要素的信息了。

由于WMS是无状态的,所以在 GetFeaturelnfo 请求中还应包括原始的 GetMap 请求中所有的参数(除Version和Request外)。根据 GetMap 请求中的空间上下文信息(BBOX、SRS、Width和Height)和用户选择的(X,Y)位置,WMS返回该位置更多的信息。

GetFeaturelnfo 请求参数中还包括 Query_Layers 参数,该参数列表指明获取要素信息的图层。该参数列表中的图层必须是WMS的 Capabilities XML文档中包含的图层。

GetFeaturelnfo 请求中可选的 Info_Format 参数指明用什么格式返回要素的信息。该格式在WMS的 Capabilities XML文档中定义为MIME类型。如 Info_Format=application/vnd.ogc.gml 表不返回结果用GML描述。

GetFeaturelnfo 请求中 Feature_Count 可选的参数表明返回要素信息的最大要素数量。默认值为 1 。X,Y参数表示地图上感兴趣点的像素坐标。X,Y值分别在 WidthHeight 参数值内。坐标原点在图片的左上角。

如果 GetFeaturelnfo 请求有效,WMS将根据 Info_Format 作出响应。响应的性质将由WMS服务器作出判断,但一般与点(X,Y)最近的要素相对应。

在 MapServer中使用 WMS 服务的 GetFeatureInfo 请求

这里说明发布的 MapServer WMS 服务的 GetFeatureInfo 访问。

首先是 Mapfile:

01 MAP
02     NAME "EX2_"
03     IMAGETYPE "png24"
04     EXTENT -180 -90 180 90
05     SIZE 600 300
06     SHAPEPATH "../geodata"
07     SYMBOLSET "../symbols/symbols35.sym"
08     FONTSET "../fonts/fonts.list"
09     OUTPUTFORMAT
10         NAME "png"
11         DRIVER "AGG/PNG"
12         MIMETYPE "image/png"
13         IMAGEMODE RGB
14         EXTENSION "png"
15         FORMATOPTION "GAMMA=0.75"
16     END
17     WEB
18         TEMPLATE "tmpl_ogc.html"
19         IMAGEPATH "/oswebgis/ms_tmp/"
20         IMAGEURL "/ms_tmp/"
21         METADATA
22             "wms_title" "WMS Demo Server"
23             "wms_version" "1.3.0"
24             "wms_onlineresource" "http://192.168.56.1/cgi-bin/mapserv?map=/oswebgis/example_ogc.map&"
25             "wms_srs" "EPSG:4326"
26             "wms_enable_request" "*"
27             "ows_enable_request" "*"
28             "wms_feature_info_mime_type" "text/html"
29             "wms_format" "image/png"
30         END
31     END
32     PROJECTION
33         "init=epsg:4326"
34     END
35     LAYER
36         NAME "modis"
37         DATA "land_shallow_topo_8192.tif"
38         STATUS OFF
39         TYPE RASTER
40         PROCESSING "BANDS=1,2,3"
41         PROJECTION
42             "init=epsg:4326"
43         END
44     END
45     LAYER
46         NAME "states"
47         DATA "wcountry.shp"
48         STATUS OFF
49         TYPE POLYGON
50         TEMPLATE "tmpl_ogc.html"
51         METADATA
52             "wms_title" "test2"
53             "wms_version" "1.3.0"
54             "wms_srs" "EPSG:4326 EPSG:3857"
55             "wms_enable_request" "*"
56             "ows_enable_request" "*"
57             "wms_feature_info_mime_type" "text/html"
58             "wms_format" "image/png"
59         END
60         PROJECTION
61             "init=epsg:4326"
62         END
63         CLASS
64             NAME "States"
65             STYLE
66                 COLOR 232 232 232
67                 OUTLINECOLOR 32 32 32
68             END
69         END
70     END
71     LAYER
72         NAME "states_line"
73         DATA "wcountry.shp"
74         STATUS OFF
75         TYPE LINE
76         TEMPLATE "tmpl_ogc.html"
77         METADATA
78             "wms_title" "test3"
79             "wms_version" "1.3.0"
80             "wms_srs" "EPSG:4326 EPSG:3857"
81             "wms_enable_request" "*"
82             "ows_enable_request" "*"
83             "wms_feature_info_mime_type" "text/html"
84             "wms_format" "image/png"
85         END
86         PROJECTION
87             "init=epsg:4326"
88         END
89         CLASS
90             NAME "State Boundary"
91             STYLE
92                 COLOR 132 132 32
93             END
94         END
95     END
96 END

与前面 xmfb1.map 相比:

f1MAPf1MAP
nn2    NAME "EX2_"
2    IMAGETYPE "PNG"3    IMAGETYPE "png24"
3    EXTENT -180 -90 180 904    EXTENT -180 -90 180 90
5    SHAPEPATH "../geodata"6    SHAPEPATH "../geodata"
n6    IMAGECOLOR 255 255 255n7    SYMBOLSET "../symbols/symbols35.sym"
8    FONTSET "../fonts/fonts.list"
9    OUTPUTFORMAT
10        NAME "png"
11        DRIVER "AGG/PNG"
12        MIMETYPE "image/png"
13        IMAGEMODE RGB
14        EXTENSION "png"
15        FORMATOPTION "GAMMA=0.75"
16    END
7    WEB17    WEB
nn18        TEMPLATE "tmpl_ogc.html"
19        IMAGEPATH "/oswebgis/ms_tmp/"
20        IMAGEURL "/ms_tmp/"
8        METADATA21        METADATA
9            "wms_title" "WMS Demo Server"22            "wms_title" "WMS Demo Server"
nn23            "wms_version" "1.3.0"
10            "wms_onlineresource" "http://webgis.osgeo.cn/cgi-bin/mapserv?map=/oswebgis/xmfb1.map&"24            "wms_onlineresource" "http://192.168.56.1/cgi-bin/mapserv?map=/oswebgis/example_ogc.map&"
11            "ows_onlineresource" "http://webgis.osgeo.cn/cgi-bin/mapserv?map=/oswebgis/xmfb1.map&"
12            "wms_srs" "EPSG:4269 EPSG:4326"25            "wms_srs" "EPSG:4326"
13            "wms_enable_request" "* !GetFeatureInfo"26            "wms_enable_request" "*"
27            "ows_enable_request" "*"
28            "wms_feature_info_mime_type" "text/html"
29            "wms_format" "image/png"
14        END30        END
nn31    END
32    PROJECTION
33        "init=epsg:4326"
15    END34    END
30        TYPE POLYGON49        TYPE POLYGON
nn50        TEMPLATE "tmpl_ogc.html"
51        METADATA
52            "wms_title" "test2"
53            "wms_version" "1.3.0"
54            "wms_srs" "EPSG:4326 EPSG:3857"
55            "wms_enable_request" "*"
56            "ows_enable_request" "*"
57            "wms_feature_info_mime_type" "text/html"
58            "wms_format" "image/png"
59        END
60        PROJECTION
61            "init=epsg:4326"
62        END
31        CLASS63        CLASS
n32            NAME "The Upper Great Lakes States"n64            NAME "States"
33            STYLE65            STYLE
38    END70    END
tt71    LAYER
72        NAME "states_line"
73        DATA "wcountry.shp"
74        STATUS OFF
75        TYPE LINE
76        TEMPLATE "tmpl_ogc.html"
77        METADATA
78            "wms_title" "test3"
79            "wms_version" "1.3.0"
80            "wms_srs" "EPSG:4326 EPSG:3857"
81            "wms_enable_request" "*"
82            "ows_enable_request" "*"
83            "wms_feature_info_mime_type" "text/html"
84            "wms_format" "image/png"
85        END
86        PROJECTION
87            "init=epsg:4326"
88        END
89        CLASS
90            NAME "State Boundary"
91            STYLE
92                COLOR 132 132 32
93            END
94        END
95    END
39END96END

这个 Mapfile 配置了 WMS 服务。查看功能:

打开链接

查看地图

使用 GetFeatureInfo 访问

使用 GetFeatureInfo

上面的结果使用模板输出 。

说明

WMS,Web Mapping Server,属于 OGC 发布的规范。

GetFeatureInfo 是 WMS 支持的访问方法。