按属性类别显示图层

查看地图

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

地图文件

下面是地图文件 MapFile (xmfa3.map):

01 MAP
02     IMAGETYPE "PNG"
03     EXTENT -180 -90 180 90
04     SIZE 600 300
05     SHAPEPATH "../geodata"
06     IMAGECOLOR 255 255 255
07     LAYER
08         NAME "states_poly"
09         DATA "wcountry.shp"
10         STATUS OFF
11         TYPE POLYGON
12         CLASSITEM "NAME"
13         CLASS
14             NAME "China"
15             EXPRESSION "CHINA"
16             STYLE
17                 COLOR 232 30 30
18             END
19         END
20         CLASS
21             NAME "Others"
22             STYLE
23                 COLOR 198 198 255
24             END
25         END
26     END
27     LAYER
28         NAME "states_line"
29         DATA "wcountry.shp"
30         STATUS OFF
31         TYPE LINE
32         CLASSITEM "NAME"
33         CLASS
34             NAME "China Boundary"
35             EXPRESSION "land"
36             STYLE
37                 COLOR 32 32 32
38                 WIDTH 1
39             END
40         END
41         CLASS
42             NAME "Others Boundary"
43             STYLE
44                 COLOR 150 150 150
45                 WIDTH 0.4
46             END
47         END
48     END
49 END

图层分类的 Mapfile

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

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

文件变动如下:

11        TYPE POLYGON11        TYPE POLYGON
nn12        CLASSITEM "NAME"
12        CLASS13        CLASS
n13            NAME "States"n14            NAME "China"
15            EXPRESSION "CHINA"
14            STYLE16            STYLE
n15                COLOR 232 232 232n17                COLOR 232 330
18            END
19        END
20        CLASS
21            NAME "Others"
22            STYLE
23                COLOR 198 198 255
16            END24            END
23        TYPE LINE31        TYPE LINE
nn32        CLASSITEM "NAME"
24        CLASS33        CLASS
n25            NAME "State Boundary"n34            NAME "China Boundary"
35            EXPRESSION "land"
26            STYLE36            STYLE
t27                COLOR 132 132 32t37                COLOR 32 32 32
38                WIDTH 1
39            END
40        END
41        CLASS
42            NAME "Others Boundary"
43            STYLE
44                COLOR 150 150 150
45                WIDTH 0.4
28            END46            END

Mapfile 中属性说明

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

CLASSITEM "NAME"

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

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

EXPRESSION "CHINA"

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