MapServer通过将图层堆叠在一起来构建地图。每个渲染时,它都被放置在堆栈的顶部。每个图层都显示从单个数据集中选择的要素。可以使用Unix正则表达式,字符串比较和逻辑表达式来选择要显示的功能。由于数据的相似性和样式参数(如比例,颜色和标签)的相似性,您可以将图层视为主题。图层的显示处于交互式控制之下,允许用户选择要渲染的图层。虽然无法动态生成图层,但可以使用动态数据填充空图层并通过URL进行操作。
为了使地图内容更加丰富,继续添加新的数据(河流数据),添加的数据使用一个新的 LAYER
对象。各个图层的定义是相对独立的,相互之间没有什么关系。
下面是地图文件(mfml2.map):
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 LAYER
09 NAME "states_poly"
10 DATA "wcountry.shp"
11 STATUS OFF
12 TYPE POLYGON
13 LABELITEM "NAME"
14 CLASS
15 NAME "States"
16 STYLE
17 COLOR 232 232 232
18 END
19 END
20 END
21 LAYER
22 NAME "states_line"
23 DATA "wcountry.shp"
24 STATUS OFF
25 TYPE LINE
26 CLASS
27 NAME "State Boundary"
28 STYLE
29 COLOR 132 132 32
30 END
31 END
32 END
33 LAYER
34 NAME "wroads"
35 DATA "wroads.shp"
36 STATUS OFF
37 TYPE LINE
38 CLASS
39 NAME "World Road"
40 STYLE
41 COLOR 100 200 100
42 END
43 END
44 END
45 LAYER
46 NAME "wriver"
47 DATA "wriver.shp"
48 STATUS OFF
49 TYPE LINE
50 CLASS
51 NAME "World River"
52 STYLE
53 COLOR 0 0 255
54 END
55 END
56 END
57 END
上面的 Mapfile 中还定义了道路层图( wroads
)下面的地图中进一步添加了这个图层。
图层的顺序要注意一下。在这个地图中,河流图层是在道路上面的,这与通常制图的原则是不符的,通常情况下会把道路图层放在河流图层的上面。
在传递参数的时候交换一下位置,效果如下,可以看到与上面的地图是一样的。通过传递 URL 的参数无法改变 Mapfile 中定义的图层的顺序 。
想要修改图层的顺序, 只能在 Mapfile 中修改:
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 LAYER
09 NAME "states_poly"
10 DATA "wcountry.shp"
11 STATUS OFF
12 TYPE POLYGON
13 LABELITEM "NAME"
14 CLASS
15 NAME "States"
16 STYLE
17 COLOR 232 232 232
18 END
19 END
20 END
21 LAYER
22 NAME "states_line"
23 DATA "wcountry.shp"
24 STATUS OFF
25 TYPE LINE
26 CLASS
27 NAME "State Boundary"
28 STYLE
29 COLOR 132 132 32
30 END
31 END
32 END
33 LAYER
34 NAME "wriver"
35 DATA "wriver.shp"
36 STATUS OFF
37 TYPE LINE
38 CLASS
39 NAME "World River"
40 STYLE
41 COLOR 0 0 255
42 END
43 END
44 END
45 LAYER
46 NAME "wroads"
47 DATA "wroads.shp"
48 STATUS OFF
49 TYPE LINE
50 CLASS
51 NAME "World Road"
52 STYLE
53 COLOR 100 200 100
54 END
55 END
56 END
57 END
可以看到,尽管不是很明显,河流图层到了道路图层的下面了。