TextSymbolizer¶
A TextSymbolizer 将功能样式设置为 文本标签 . 文本标签可以放置在点上,也可以沿着从要标记的几何图形派生的线性路径放置。
贴标是一项复杂的工作,有效的贴标对于获得清晰、直观的地图输出至关重要。因此,SLD提供了许多选项来控制标签的放置。为了提高质量,更多的geoserver提供了额外的选项和参数。标准选项和扩展选项的用法将在以下部分中更详细地描述 标记 .
句法¶
A <TextSymbolizer>
包含以下元素:
Tag |
必修的? |
Description |
|
不 |
要标记的几何图形。 |
|
不 |
标签的文本内容。 |
|
不 |
标签的字体信息。 |
|
不 |
设置标签相对于其关联几何图形的位置。 |
|
不 |
在标签文本周围创建彩色背景,以提高可读性。 |
|
不 |
标签文本的填充样式。 |
|
不 |
要在标签文本后面显示的图形。参见 图解的 内容语法。 |
|
不 |
冲突解决期间标签的优先级。内容可能包含 expressions . 也见 优先级标签 . |
|
0..N |
特定于地理服务器的选项。参见 标记 有关可用选项的说明。可以指定任意数量的选项。 |
几何图形¶
这个 <Geometry>
元素是可选的。如果存在,它将使用 <PropertyName>
元素。另请参见 SLD中的几何变换 用于指定几何图形的地理服务器扩展。
任何类型的几何图形都可以用 <TextSymbolizer>
.对于非点几何图形,使用代表点(例如直线或多边形的质心)。
标签¶
这个 <Label>
元素指定将呈现为标签的文本。它允许混合类型的内容,这意味着内容可以是字符串数据和 筛选表达式 .它们被连接起来形成最终的标签文本。如果特性属性直接提供标签,则内容是单个 <PropertyName>
.标签中可以包含多个属性,属性值可以由筛选器表达式和函数操作。还可以提供其他“样板文件”文本。用XML包围可以保留空白 <![CDATA[
]]>
分隔符。
如果省略此元素,则不会呈现标签。
字体¶
这个 <Font>
元素指定要用于标签的字体。一套 <CssParameter>
元素指定字体的详细信息。
The name
attribute indicates what aspect of the font is described,
using the standard CSS/SVG font model.
The content of the element supplies the
value of the font parameter.
The value may contain expressions.
Parameter |
必修的? |
Description |
|
不 |
用于标签的字体的族名称。默认为 |
|
不 |
字体的样式。选项包括 |
|
不 |
字体的粗细。选项包括 |
|
不 |
字体的大小(像素)。默认为 |
LabelPlacement¶
这个 <LabelPlacement>
元素指定标签相对于要标记的几何图形的位置。有两个可能的子元素: <PointPlacement>
或 <LinePlacement>
.必须仅指定其中一个。
Tag |
必修的? |
Description |
|
不 |
在单个点标记几何图形 |
|
不 |
沿线性路径标记几何图形 |
PointPlacement¶
这个 <PointPlacement>
元素指示将标签放置在从要标记的几何图形派生的标记点上。标签相对于标签点的位置可由以下子元素控制:
Tag |
必修的? |
Description |
|
不 |
标签边界框中与标签点对齐的位置。位置由指定 |
|
不 |
指定标签点应与原始点偏移。偏移量由指定 |
|
不 |
标签顺时针旋转(负值为逆时针)。值可以包含 expressions . 默认是 |
按该顺序应用定位点对齐、位移偏移和旋转。
LinePlacement¶
这个 <LinePlacement>
元素指示标签沿从要标记的几何图形派生的线性路径放置。标签相对于线性路径的位置可由以下子元素控制:
Tag |
必修的? |
Description |
|
不 |
与线性路径的偏移量,以像素为单位。正值偏移到行的左侧,负值偏移到行的右侧。值可以包含 expressions . 默认是 |
文本沿线性路径的外观可以由供应商选项进一步控制。 followLine
, maxDisplacement
, repeat
, labelAllGroup
和 maxAngleDelta
.这些在 标记 .
晕圈¶
光环会在标签文本周围创建彩色背景,这可以提高低对比度情况下的可读性。在 <Halo>
元素有两个子元素控制光环的外观:
Tag |
必修的? |
Description |
|
不 |
光晕半径,以像素为单位。值可以包含 expressions . 默认是 |
|
不 |
光晕的颜色和不透明度 |
填充¶
The <Fill>
element specifies the fill style for the label text.
The syntax is the same as that of the PolygonSymbolizer
填充 element.
The default fill color is black (#FFFFFF
) at 100% opacity..
图解的¶
这个 <Graphic>
元素指定要在标签文本后面显示的图形符号(如果有)。此功能的一个典型用途是在由功能属性提供的道路编号后面显示“公路护盾”。元素内容的语法与 <PointSymbolizer>
图解的 元素。图形可由内部提供 mark symbols 或通过外部图像或SVG文件。通过使用供应商选项,可以更改它们的大小和纵横比,以匹配与其显示的文本。 图形调整大小 和 图形边距 .
例子¶
1 <TextSymbolizer>
2 <Label>
3 <ogc:PropertyName>name</ogc:PropertyName>
4 </Label>
5 <Font>
6 <CssParameter name="font-family">Arial</CssParameter>
7 <CssParameter name="font-size">12</CssParameter>
8 <CssParameter name="font-style">normal</CssParameter>
9 <CssParameter name="font-weight">bold</CssParameter>
10 </Font>
11 <LabelPlacement>
12 <PointPlacement>
13 <AnchorPoint>
14 <AnchorPointX>0.5</AnchorPointX>
15 <AnchorPointY>0.0</AnchorPointY>
16 </AnchorPoint>
17 <Displacement>
18 <DisplacementX>0</DisplacementX>
19 <DisplacementY>25</DisplacementY>
20 </Displacement>
21 <Rotation>-45</Rotation>
22 </PointPlacement>
23 </LabelPlacement>
24 <Fill>
25 <CssParameter name="fill">#990099</CssParameter>
26 </Fill>
27 </TextSymbolizer>
符号标签具有来自 name
属性。字体为黑体,12磅大小,用紫色填充。标签沿下边缘居中,然后向上移动25个像素,最后逆时针旋转45度。
在渲染过程中,置换在旋转之前生效,因此25像素垂直置换本身旋转45度。

带旋转标签的点¶
可缩放字体大小¶
字体大小也可以根据比例分母设置,如下所示:
1 <CssParameter name="font-size">
2 <ogc:Function name="Categorize">
3 <!-- Value to transform -->
4 <ogc:Function name="env">
5 <ogc:Literal>wms_scale_denominator</ogc:Literal>
6 </ogc:Function>
7 <!-- Output values and thresholds -->
8 <!-- Ranges: -->
9 <!-- [scale <= 300, font 12] -->
10 <!-- [scale 300 - 2500, font 10] -->
11 <!-- [scale > 2500, font 8] -->
12 <ogc:Literal>12</ogc:Literal>
13 <ogc:Literal>300</ogc:Literal>
14 <ogc:Literal>10</ogc:Literal>
15 <ogc:Literal>2500</ogc:Literal>
16 <ogc:Literal>8</ogc:Literal>
17 </ogc:Function>
18 </CssParameter>
上面的示例将根据比例分母设置以不同的大小显示文本。字体大小为 12 对于小于或等于300的比例分母,字体大小为 10 用于300-2500之间的刻度分母,字体大小为 8 刻度分母大于2500。