例1.4

标记地图

我们也可以在地图上添加标签…

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

MapServer有一个非常灵活的标签引擎。它支持本机位图和TrueType字体。TrueType支持字体缩放。标签的角度和位置可以定制…如果您花时间学习创建好标签所涉及的许多参数,您将获得信息丰富、美观的地图。

这就是 Mapfile 的外观: Example1-4.map .

映射文件结构

按对象划分的映射文件结构如下所示:

                             MAP
 (states_poly) LAYER----------|---------LAYER (states_line)
(land) CLASS-----|-CLASS (water)         |-CLASS
  STYLE-|-LABEL     |-STYLE                 |-STYLE</pre>

标签对象和关键字

在这里,我们将介绍更多参数以及Label对象:

FONTSET

这里我们指定TrueType字体列表(或字体集)文件的完整路径。此文件列出了每个可用字体。查看文件本身和 MapServer fontset documentation 更多信息。fontset是映射对象的参数。

LABELITEM

这将指定要用于标记的数据属性,在本例中为“状态”。labelitem是层对象的参数。

LABEL

标记标签对象的开头。标签对象可用于其他对象(即scaleBar对象)下。

COLOR

在标签对象中,颜色指定标签文本的颜色。

阴影颜色-已弃用

指定标签文本的阴影颜色。

备注

由于mapserver 6,必须使用带有geomtransform labelpoly的标签样式。教程文件尚未更新。

阴影大小-已弃用

指定阴影大小。该值对应于x和y的像素移动。所以,“2 2”是指两个像素宽两个像素高。

备注

由于mapserver 6,必须使用带有geomtransform labelpoly的标签样式。教程文件尚未更新。

TYPE

在Label对象中,键入指定要使用的字体类型。我们可以选择TrueType或位图(内置字体)。我们选择TrueType。

FONT

如果将类型指定为TrueType,则需要指定要使用的字体。这里的值是字体列表文件中的“别名”。

SIZE

如果使用TrueType字体,则值为像素大小。如果是位图,可以说“小”或“大”。

ANTIALIAS

这将打开或关闭TrueType抗锯齿。请记住,值不是开或关,而是真或假。

POSITION

标签文本相对于标签点的位置。该值是垂直和水平位置的组合。垂直对齐有以下选项:C代表中心,U代表上部,L代表下部。对于水平对齐,您有以下选项:C代表中心,L代表左侧,R代表右侧。因此,要将标签文本与标签ID的中心对齐,需要使用值“cc”(中心)。或者如果你想把它放在身份证的左下角,你可以用LL。另一种方法是让MapServer决定标签的最佳位置。为此,您将使用值“auto”。

PARTIALS

告诉MapServer是否生成不完整的标签文本。这里的默认设置是不生成标签文本的片段。该值为真或假。

MINDISTANCE

这是重复标签之间的最小距离(像素)。看看如果增加或减少这个值会发生什么。

BUFFER

每个标签的填充(像素)。这用于增强可读性。4个像素的缓冲区意味着在4个像素的范围内不会绘制任何标签。再次,改变看看它是如何工作的。

也可以创建与多边形层分离的标签。对注释数据类型执行此操作。查看下一个示例的映射文件,了解如何实现这种标记。您将注意到“label”层中的类对象的颜色参数值为“-1-1-1”。负数告诉MapServer给这个类一个透明的颜色(标签ID不显示)。再次,使用这些值了解它如何影响地图。


Back to Example 1.3 | Proceed to Example 1.5