例1.2

两层静态地图

https://demo.mapserver.org/cgi-bin/mapserv?map=/mapserver/apps/tutorial/htdocs/example1-2.map&layer=states_poly&layer=states_line&mode=map

与第一个示例一样,此图像是通过将<img>标记的源链接到以下URL来生成的: https://demo.mapserver.org/cgi-bin/mapserv?map=/mapserver/apps/tutorial/htdocs/example1-2.map&layer=states_poly&layer=states_line&mode=map 。这就是本节中的大多数示例的工作方式。

无论如何,您会注意到这里的地图与第一个示例相同。是的,但 Mapfile 不同。看看。

这就是映射文件的外观: Example1-2.map

映射文件结构

按对象划分的mapfile结构如下所示:

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

在这里,我们将原始层分为两层。第一层仍然是多边形层,但是 STYLE object 不再具有大纲颜色,例如:

LAYER
  ...
  TYPE         POLYGON
  ...
  CLASS
    NAME       "States"
    STYLE
      COLOR    232 232 232
    END
  END
END

第二层与第一层类似,只是类型更改为线条,样式中的颜色更改为与第一个示例中的大纲颜色相同的颜色。这将生成与第一个图像相同的图像。

LAYER
  ...
  TYPE         LINE
  CLASS
    NAME       "State Boundary"
    STYLE
      COLOR    32 32 32
    END
  END
END

那么,为什么要这样做?

如果我们继续在状态层的顶部添加层,那么轮廓很可能会被这些其他层覆盖。为了在添加这些其他层之后仍能看到状态边界,我们必须将状态边界线层与状态多边形层分离,并将其放在其他层的顶部。我们如何定义/添加层是有顺序的,在本节中,您将清楚地看到它。


Back to Example 1.1 | Proceed to Example 1.3