文本符号

文本符号样式矢量特征的标签。标签可以由文本字符串和/或图形组成。

句法

文本符号的完整语法是:

symbolizers:
- text:
    fill-color: <color>
    fill-opacity: <expression>
    fill-graphic:
      <graphic_options>
    stroke-graphic:
      <graphic_options>
    stroke-graphic-fill:
      <graphic_options>
    label: <expression>
    font-family: <expression>
    font-size: <expression>
    font-style: <expression>
    font-weight: <expression>
    placement: <point|line>
    offset: <expression>
    anchor: <tuple>
    displacement: <tuple>
    rotation: <expression>
    priority: <expression>
    halo:
      radius: <expression>
      fill-color: <color>
      fill-opacity: <expression>
      fill-graphic:
        <graphic_options>
    graphic:
      symbols:
        <graphic_options>
      size: <expression>
      opacity: <expression>
      rotation: <expression>
    geometry: <expression>
    uom: <text>
    x-composite-base: <boolean>
    x-composite: <text>
    x-allowOverruns: <boolean>
    x-autoWrap: <expression>
    x-conflictResolution: <boolean>
    x-followLine: <boolean>
    x-forceLeftToRight: <boolean>
    x-goodnessOfFit: <expression>
    x-graphic-margin: <expression>
    x-graphic-resize: <none|proportional|stretch>
    x-group: <boolean>
    x-labelAllGroup: <boolean>
    x-repeat: <expression>
    x-maxAngleDelta: <expression>
    x-maxDisplacement: <expression>
    x-minGroupDistance: <expression>
    x-partials: <boolean>
    x-polygonAlign: <boolean>
    x-spaceAround: <expression>
    x-underlineText: <boolean>
    x-strikethroughText: <boolean>
    x-charSpacing: <expression>
    x-wordSpacing: <expression>
    x-inclusion: <text>

在哪里?

财产

必修的?

描述

默认值

fill-color

标签内部的颜色。

'#808080' (灰色)

fill-opacity

标签文本填充不透明度。有效值是介于 0 (完全透明)和 1 (完全不透明)。

1

fill-graphic

用于填充文本标签的设计。可以是由公共形状组成的标记,也可以是指向图形的URL。这个 <graphic_options> 应该包含一个包含 symbols: 然后是 external:mark: ,具有适当的参数,如 点符号 部分。

没有

stroke-graphic

沿标签文本周围的笔画使用的设计或图案。输出将始终是线性重复模式,因此不与 stroke-width .可以是由公共形状组成的标记,也可以是指向图形的URL。这个 <graphic_options> 应该包含一个包含 symbols: 然后是 external:mark: ,具有适当的参数。不能与一起使用 stroke-graphic-fill .

不适用

stroke-graphic-fill

用于填充标签文本周围的笔画的设计或图案。要填充的区域直接与 stroke-width .可以是由公共形状组成的标记,也可以是指向图形的URL。这个 <graphic_options> 应该包含一个包含 symbols: 然后是 external:mark: ,具有适当的参数,如 点符号 第节。不能与一起使用 stroke-graphic .

不适用

财产

必修的?

描述

默认值

label

是的

要显示的文本。通常取自属性,但任何构造字符串的有效表达式都可以。

不适用

font-family

用于标签的字体类型。选项取决于系统;可通过GeoServer服务器状态页找到可用字体的完整列表。

serif

font-size

字体大小。

10

font-style

字体的样式。选项包括 normalitalicoblique .

normal

font-weight

字体的粗细。选项包括 normalbold .

normal

placement

确定是否从 point 或A line .

point

offset

相对于特征位置移动绘制标签的值(像素)。正值将沿标签顶部的方向移动标签,负值将沿标签底部的方向移动标签。仅在以下情况下有效 type 设置为 line .

0

anchor

指定符号相对于特征位置的中心(直线和多边形的质心)。值是一个 [x,y] 具有从0到1的十进制值的元组,具有 [0,0] 表示符号锚定在标签的左下角,以及 [1,1] 指固定在标签右上角。

[0,0]

displacement

指定相对于特征移动标签的距离(像素)。值是一个 [x,y] 以像素表示的值的元组,因此 [10,5] 将标签向右移动10个像素,向上移动5个像素。仅在以下情况下有效 type 设置为 point .

[0,0]

rotation

标签的值(度)或旋转。较大的值会增加逆时针旋转。值 180 将使标签颠倒。仅在以下情况下有效 type 设置为 point .

0

priority

在冲突解决期间选择要显示的标签时使用的优先级。优先级值越高,优先级值越低。

1000

halo

在标签周围创建阴影区域,以便于识别。

没有光环

radius

光晕的大小(像素)

1

fill-color

光环的颜色

'#808080'

fill-opacity

指定光晕的透明度级别。价值 0 意味着完全透明,而 1 意思是完全不透明。

1

除了标签之外,以下属性还允许显示图形。这在绘制“护盾”(图形顶部的文本)时使用,例如在道路标志中。

财产

必修的?

描述

默认值

graphic

指定是否为标签绘制图形。

不适用(无图形)

symbols

图形的细节。由一个 external:mark: 第节中详细说明的适当参数 点符号 部分。

不适用

size

以像素为单位的图形大小。如果纵横比不是1:1(平方),则适用于 高度 仅限于图形,宽度按比例缩放。

16

opacity

指定图形的透明度级别。价值 0 意味着完全透明,而 1 意思是完全不透明。

1

rotation

图形的值(度)或旋转。较大的值会增加逆时针旋转。值 180 将使图形颠倒。

0

财产

必修的?

描述

默认值

geometry

指定要用作几何的属性(请参见 SLD中的几何变换 )

找到第一个几何属性(通常命名为 geomthe_geom

uom

用于宽度计算的测量单位(请参见 以地面单位指定符号大小 )

象素

以下属性等同于SLD“供应商选项”。

财产

必修的?

描述

默认值

x-allowOverruns

允许行上的标签稍微超出行的开头或结尾。

true

x-autoWrap

标签将在多行上换行的像素数。不能与一起使用 x-followLine .

0

x-conflictResolution

启用冲突解决,这意味着不允许两个标签重叠。如果没有冲突解决,符号可以与其他标签重叠。

true

x-followLine

在线性几何图形上,标签将跟随当前线条的形状,而不是在切线处绘制。将覆盖

false

x-forceLeftToRight

将标签强制为可读方向,否则将遵循线条方向,可能会使标签看起来颠倒。使用符号字体沿直线添加方向标记时,此设置很有用。

false

x-goodnessOfFit

标签的百分比(以0-1之间的小数表示),必须适合几何图形以允许绘制标签。仅适用于多边形功能。

0.5

x-graphic-margin

拉伸图形和文本之间的像素数。仅适用于以下情况 x-graphic-resize 设置为 stretchproportional .

0

x-graphic-resize

允许拉伸标签下的图形以适合标签大小。选项包括 nonestretchproportional .与一起使用 x-graphic-margin

none

x-group

具有相同标签的几何图形将被视为要标记的单个实体。用于控制重复的标签。

false

x-labelAllGroup

与一起使用 x-group . 什么时候? true 组中的所有项都已标记。什么时候? false ,仅标记组中最大的几何图形。仅对行有效。

false

x-repeat

在组上绘制的标签之间所需的距离(像素)。如果为零,则只绘制一个标签。与一起使用 x-group .仅对行有效。

0

x-maxAngleDelta

弯曲标签中两个字符之间的最大允许角度(度)。与一起使用 x-followLine .值高于 30 可能导致标签失去可读性。

22.5

x-maxDisplacement

距离(以像素为单位)标签可以从其自然位置移动,以消除与其他标签的冲突。

0

x-minGroupDistance

同一标签组中两个标签之间的最小距离(像素)。与一起使用 displacementrepeat 避免两个标签太靠近

无最小距离

x-partials

将显示部分标签(在显示区域的边框上截断)。

false

x-polygonAlign

替代手动旋转以自动对齐标签旋转。仅对多边形有效。

false

x-spaceAround

两个标签之间的最小距离(像素)。负值指定两个标签之间的最大重叠。

0

x-underlineText

指示渲染器为标签加下划线。

false

x-strikethroughText

指示渲染器删除标签。

false

x-charSpacing

选项控制字符之间的空间量,正值增加字符,负值缩小字符(并最终使字符重叠)。该值以像素为单位指定。

0

x-wordSpacing

选项控制单词之间的空格量,对于该选项,只接受正值(或零)。该值以像素为单位指定。

0

的其他“供应商选项”属性 色彩合成与混色

财产

必修的?

描述

默认值

x-composite

允许符号之间的alpha合成和颜色混合选项。

不适用

x-composite-base

允许渲染引擎使用符号映射来定义“基本”缓冲区,以便随后使用 x-composite . 请参见 Feature Styles 了解更多详细信息。

false

实例

基本标签

文本符号用于在对象上绘制标签。标签文本通常链接到层的某些属性。字体选项在 font-familyfont-sizefont-stylefont-weight 属性。下面的示例使用 name 层的属性,使用大小为12的sansserif字体、灰色、粗体和斜体:

feature-styles:
- name: name
  rules:
  - title: fill-graphic
    symbolizers:
    - text:
        label: ${name}
        fill-color: '#555555'
        font-family: SansSerif
        font-size: 12
        font-style: italic
        font-weight: bold
../../../../_images/text_basic.png

基本标签

带包装的标签

包装长标签可以提高它们在地图上的适合程度。这可以通过使用 x-autoWrap 属性。此示例包装长度超过70像素的线条:

feature-styles:
- name: name
  rules:
  - symbolizers:
    - polygon:
        stroke-width: 1
        fill-color: '#00DD77'
    - text:
        label: ${name}
        font-size: 12
        x-autoWrap: 70
        x-maxDisplacement: 100
        anchor: [0.5,-1]
../../../../_images/text_wrap.png

带包装的标签

带光环的标签

即使在具有各种背景特征的复杂地图上,带有光环的周围标签也能使它们可见。这可以通过使用 halo 财产家族。此示例将标签包围在半径为2:的部分透明白色光晕中:

feature-styles:
- name: name
  rules:
  - symbolizers:
    - polygon:
        stroke-width: 1
        fill-color: '#00DD77'
    - text:
        label: ${name}
        font-size: 12
        x-autoWrap: 70
        x-maxDisplacement: 100
        halo:
           radius: 2
           fill-color: '#FFFFFF'
           fill-opacity: 0.8
        anchor: [0.5,-1]
../../../../_images/text_halo.png

带光环的标签

分组标签

可以使用分组和其他属性更好地控制标签的放置位置。这个 x-group 选项将具有相同文本的所有标签组合为一个标签。这对于只显示一条街道的单个标签很有用,而不是在街道的每个街区都有一个标签。这个 x-goodnesOfFit 选项确定是否根据标签与可用空间的匹配程度绘制标签。这个 x-maxDisplacement 选项确定可以移动标签以避免重叠的最大距离。

以下示例使用 x-group 确保每个特征只绘制一个标签,并设置 x-goodnesOfFit 归零,以便即使标签不合适也可以绘制:

feature-styles:
- name: name
  rules:
  - title: fill-graphic
    symbolizers:
    - text:
        label: ${name}
        fill-color: '#555555'
        font-family: SansSerif
        font-size: 12
        font-style: italic
        font-weight: bold
        x-group: true
        x-goodnessOfFit: 0.0
        x-maxDisplacement: 400
../../../../_images/text_group.png

分组标签

行后的标签

为了使标签跟随一条线(而不是与一条线相切),请 x-followLine 可以设置选项。其他属性可以与此结合使用,以获得最佳的视觉效果。以下示例的街道名称沿着街道线,最大角度为90度,每150像素重复一次:

feature-styles:
- rules:
  - symbolizers:
    - line:
        stroke-color: '#EDEDFF'
        stroke-width: 10
    - text:
        label: name
        x-followLine: true
        x-maxAngleDelta: 90
        x-maxDisplacement: 400
        x-repeat: 150
../../../../_images/text_follow.png

行后的标签

标签避免障碍

这个 x-labelObstacle 选项用于将不同的符号标记为标签应避免的障碍。此示例在线条几何图形上绘制标签和点,并使用点符号将线条顶点绘制为点。将这些点视为需要避免的障碍:

feature-styles:
- rules:
  - symbolizers:
      - line:
          stroke-color: '#00BBDD'
          stroke-width: 10
- rules:
  - symbolizers:
      - point:
          geometry: ${vertices(the_geom)}
          x-labelObstacle: true
          symbols:
          - mark:
              shape: circle
              stroke-color: '#000000'
              fill-color: '#007777'
      - text:
          label: ${streetname}
          x-maxDisplacement: 400
          x-followLine: true
../../../../_images/text_labelobstacle.png

标签避免障碍

路障

这个 graphic 选项用于在标签后面显示符号。这项功能的一个常见用途是在道路编号后面显示“公路护盾”。此示例使用圆 shape 绘制状态屏蔽,以及 external 图像绘制州际防护罩,然后在顶部绘制道路名称。这个 x-graphic-resizex-graphic-margin 选项用于调整图形大小以适应标签文本:

feature-styles:
- name: state
  rules:
  - filter: ${level ilike 'State'}
    symbolizers:
    - line:
        stroke-color: '#AAEE00'
        stroke-width: 4
        stroke-linecap: round
    - text:
        label: ${name}
        anchor: [0.5, 0.5]
        fill-color: black
        font-family: SansSerif
        font-weight: bold
        font-size: 8
        x-graphic-resize: stretch
        x-graphic-margin: 6
        graphic:
          symbols:
          - mark:
              shape: circle
              fill-color: white
              stroke-color: black
- name: interstate
  rules:
  - filter: ${level ilike 'Interstate'}
    symbolizers:
    - line:
        stroke-color: '#99CC00'
        stroke-width: 6
        stroke-linecap: round
    - text:
        label: ${name}
        anchor: [0.5, 0.5]
        fill-color: white
        font-family: SansSerif
        font-weight: bold
        font-size: 8
        x-graphic-resize: stretch
        x-graphic-margin: 6
        graphic:
          symbols:
          - external:
              url: interstate.png
              format: image/png
../../../../_images/text_roadshields.png

路障

Previous: 栅格符号
Next: 缩放