2.6. 构建包含多个图层的地图¶
MapServer通过将层堆叠在一起来构建地图。在每次渲染时,它都被放置在堆栈的顶部。每个层都显示从单个数据集中选择的要素。可以使用Unix正则表达式、字符串比较和逻辑表达式选择要显示的功能。由于数据的相似性和样式参数(如比例、颜色和标签)的相似性,可将层视为主题。层的显示是在交互控制下进行的,允许用户选择要渲染的层。虽然不可能动态生成层,但可以使用动态数据填充空层并通过URL操作。
2.6.1. 查看示例¶
要使地图更加丰富,使用新的继续添加新数据河流数据 LAYER
对象。每一层的定义都是相对独立的,互不相关。
以下是Mapfile(mfml2.map):
1MAP
2 IMAGETYPE "PNG"
3 EXTENT -180 -90 180 90
4 SIZE 600 300
5 SHAPEPATH "/gdata"
6 IMAGECOLOR 255 255 255
7 FONTSET "../fonts/fonts.list"
8 LAYER
9 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
57END
Roads图层地图( wroads
)也在上面的 Mapfile 中定义,并且该层被进一步添加到下面的地图中。
2.6.2. 图层的顺序¶
注意各图层的顺序。在这张地图中,河流层在道路之上,这与通常的制图原则不一致。通常,道路层放置在河层之上。
传递参数时调换位置,效果如下,可以看到与上图相同。不能通过将参数传递给URL来更改Mapfile中定义图层的顺序。
如果要修改图层的顺序,则只能在Mapfile中进行修改:
1MAP
2 IMAGETYPE "PNG"
3 EXTENT -180 -90 180 90
4 SIZE 600 300
5 SHAPEPATH "/gdata"
6 IMAGECOLOR 255 255 255
7 FONTSET "../fonts/fonts.list"
8 LAYER
9 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
57END
可以看到,虽然不明显,但河流层在道路层下面。