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
可以看到,尽管不是很明显,河流图层到了道路图层的下面了。