使用两个图层的静态地图

查看示例

在第一个例子中,该图像生成到这个URL连接的源 <img> 标签:

http://webgis.osgeo.cn/cgi-bin/mapserv?map=/oswebgis/xmfa2.map&layer=states_poly&layer=states_line&mode=map

这是在本节工作的大多数的例子。

总之,你会发现,第一个例子中这里的地图是一样的。是的,但MapFile是不同的。看一看。

说明

这看起来是什么样的 MapFile (xmfa2.map):

01 MAP
02     IMAGETYPE "PNG"
03     EXTENT -97.238976 41.619778 -82.122902 49.38562
04     SIZE 400 300
05     SHAPEPATH "../data"
06     IMAGECOLOR 255 255 255
07     LAYER
08         NAME "states_poly"
09         DATA "states_ugl"
10         STATUS OFF
11         TYPE POLYGON
12         CLASS
13             NAME "States"
14             STYLE
15                 COLOR 232 232 232
16             END
17         END
18     END
19     LAYER
20         NAME "states_line"
21         DATA "states_ugl"
22         STATUS OFF
23         TYPE LINE
24         CLASS
25             NAME "State Boundary"
26             STYLE
27                 COLOR 32 32 32
28             END
29         END
30     END
31 END

第二个 Mapfile

MapFile 的结构,通过对象,看起来像这样。


               MAP
          LAYER-|-LAYER
        CLASS-|   |-CLASS
      STYLE-|       |-STYLE

与前面的 Mapfile 相比,变动如下:

7    LAYER7    LAYER
n8        NAME "states"n8        NAME "states_poly"
9        DATA "states_ugl"9        DATA "states_ugl"
12        CLASS12        CLASS
n13            NAME "The Upper Great Lakes States"n13            NAME "States"
14            STYLE14            STYLE
15                COLOR 232 232 23215                COLOR 232 232 232
tt16            END
17        END
18    END
19    LAYER
20        NAME "states_line"
21        DATA "states_ugl"
22        STATUS OFF
23        TYPE LINE
24        CLASS
25            NAME "State Boundary"
26            STYLE
16                OUTLINECOLOR 32 32 3227                COLOR 32 32 32
17            END28            END

在这里,将原有的层分为两层。在第一层仍然是一个多边形层,但样式中不再有 OUTLINECOLOR 属性。第二个图层的 TYPELINE ,颜色的值与在第一个例子中的 OUTLINECOLOR 的颜色相同。这样会生成与第一个示例相同的图像。

这里解释一下为什么要这样处理。如果我们继续添加态层的顶部上的层,轮廓最有可能被掩盖了这些层。为了见国界线后,我们添加其他层,我们必须分离国界线层从状态多边形层,并把它放在其他的其他层的顶部。如何定义/添加图层是有顺序的,在我们将要继续的下一节,你会看得很清楚。