MapServer交互操作:图层控制

如何进行图层控制

能够打开和关闭地图图层是Web制图应用程序的标准功能。有很多种方法来完成这,比如控制使用表单对象。 您可以使用下拉框/菜单,复选框,和/或单选按钮。在这个例子中,你将看到如何使用复选框和下拉框来实现选择图层

这里是对应文件:

01 MAP
02     IMAGETYPE "PNG"
03     EXTENT -180 -90 180 90
04     SIZE 600 300
05     SHAPEPATH "/gdata"
06     IMAGECOLOR 255 255 255
07     FONTSET "../fonts/fonts.list"
08     TEMPLATEPATTERN "example-u*"
09     WEB
10         TEMPLATE "to be replaced by map_web_template variable in section2.html"
11         IMAGEPATH "/owg/ms_tmp/"
12         IMAGEURL "/ms_tmp/"
13         METADATA
14             "wms_title" "WMS Demo Server"
15             "wms_onlineresource" "http://192.168.4.211/cgi-bin/mapserv?map=/mstu/htdocs/example2.map&"
16             "wms_srs" "EPSG:3857 EPSG:4326"
17         END
18     END
19     LAYER
20         NAME "modis"
21         DATA "land_shallow_topo_8192.tif"
22         STATUS OFF
23         TYPE RASTER
24         PROCESSING "BANDS=1,2,3"
25         OFFSITE 71 74 65
26     END
27     LAYER
28         NAME "modis_jpl"
29         TYPE RASTER
30         OFFSITE 0 0 0
31         STATUS OFF
32         CONNECTIONTYPE WMS
33         CONNECTION "http://wcs.osgeo.cn:8088/service?"
34         METADATA
35             "wms_srs" "EPSG:4326"
36             "wms_name" "maplet_i887"
37             "wms_server_version" "1.1.1"
38             "wms_format" "image/jpeg"
39         END
40         PROJECTION
41             "init=epsg:4326"
42         END
43     END
44     LAYER
45         NAME "states_poly"
46         DATA "wcountry.shp"
47         STATUS OFF
48         TYPE POLYGON
49         LABELITEM "NAME"
50         CLASS
51             NAME "States"
52             STYLE
53                 COLOR 232 232 232
54             END
55         END
56     END
57     LAYER
58         NAME "states_line"
59         DATA "wcountry.shp"
60         STATUS OFF
61         TYPE LINE
62         CLASS
63             NAME "State Boundary"
64             STYLE
65                 COLOR 132 132 32
66             END
67         END
68     END
69     LAYER
70         NAME "wriver"
71         DATA "wriver.shp"
72         STATUS OFF
73         TYPE LINE
74         CLASS
75             NAME "World River"
76             STYLE
77                 COLOR 0 0 255
78             END
79         END
80     END
81     LAYER
82         NAME "wroads"
83         DATA "wroads.shp"
84         STATUS OFF
85         TYPE LINE
86         CLASS
87             NAME "World Road"
88             STYLE
89                 COLOR 100 200 100
90             END
91         END
92     END
93 END

请注意,除了“States”多边形背景,图层状态是如何被变更为关闭的。 国家图层背景保留为默认值,所以当没有任何打开图层绘制的时候,我们的地图上永远有东西。 我们应用程序的用户应该能控制图层打开或关闭

如果你看了HTML template的源代码, 你将会理解如何通过MapServ来打开/关闭图层

打开与关闭地图图层。

打开图层控制页面

下面展示的是使用表单进行提交,各种参数通过隐藏的 input 控件来传递。效果与上面是一样的:

图层控制表单