按属性类别显示图层

查看地图

通过使用在数据中的非空间属性信息,可以创建这样的地图:

地图文件

下面是地图文件 MapFile (xmfa3.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         CLASSITEM "CLASS"
13         CLASS
14             NAME "States"
15             EXPRESSION "land"
16             STYLE
17                 COLOR 232 232 232
18             END
19         END
20         CLASS
21             NAME "Water"
22             EXPRESSION "water"
23             STYLE
24                 COLOR 198 198 255
25             END
26         END
27     END
28     LAYER
29         NAME "states_line"
30         DATA "states_ugl"
31         STATUS OFF
32         TYPE LINE
33         CLASSITEM "CLASS"
34         CLASS
35             NAME "State Boundary"
36             EXPRESSION "land"
37             STYLE
38                 COLOR 32 32 32
39             END
40         END
41     END
42 END

图层分类的 Mapfile

地图文件的结构,通过对象,看起来这样

                                  MAP
      (states_poly) LAYER----------|---------LAYER (states_line)
                      |                      |
       (land) CLASS---|---CLASS (water)      |-CLASS
                  |       |                    |
            STYLE-|       |-STYLE              |-STYLE

文件变动如下:

11        TYPE POLYGON11        TYPE POLYGON
nn12        CLASSITEM "CLASS"
12        CLASS13        CLASS
13            NAME "States"14            NAME "States"
nn15            EXPRESSION "land"
14            STYLE16            STYLE
15                COLOR 232 232 23217                COLOR 232 232 232
nn18            END
19        END
20        CLASS
21            NAME "Water"
22            EXPRESSION "water"
23            STYLE
24                COLOR 198 198 255
16            END25            END
23        TYPE LINE32        TYPE LINE
nn33        CLASSITEM "CLASS"
24        CLASS34        CLASS
25            NAME "State Boundary"35            NAME "State Boundary"
tt36            EXPRESSION "land"
26            STYLE37            STYLE

Mapfile 中属性说明

MapFile 仍然只有两个图层,但多边形层被细分为两大类。看一下额外的参数:

CLASSITEM "CLASS"

这个关键字是用来指定分离的类对象使用什么属性。在这个例子中,属性是 CLASS。如果你打开​​相关联的数据库文件这层的 Shapefile ,你会看到,有一个列(属性)称作 `CLASS

Shapefile 的数据库记录存储在DBF文件。你可以打开一个电子表格程序,如Openoffice.org的计算,或者在桌面如GIS软件QGIS。如果数据有元数据(应该有),可以通过元数据文件的内容来了解。还可以使用 ogrinfo 在 Shapefile 显示基本属性信息 - 回头看例1.1(最后几行后,“LayerSRS WKT:”显示属性名称和类型)。

EXPRESSION "land"

对于每一类,指定使用的属性值。这是最简单的表达形式。表达式可以是比这更加复杂的,允许一个常规的比较表达式或逻辑表达式。