规则

规则是 造型指令集 ,主要包括 symbolizers 与可选条件语句组合。

  • 如果条件语句存在 在规则中,则仅执行样式指令 如果条件返回true .否则,将跳过规则。

  • 如果不存在条件语句 在规则中,那么样式指令将 始终执行 .

规则可用的条件语句类型有:

  • Filters 用于基于属性的渲染

  • Scale 用于基于比例的渲染

规则包含在 feature styles .对于可以创建的规则的数量没有限制,并且对于所有规则必须相互排斥没有限制(如中所述,某些规则可能适用于相同的功能)。

句法

以下是规则的基本语法。请注意,块的内容并没有全部展开;有关相关语法,请参阅其他部分。

rules:
- name: <text>
  title: <text>
  filter: <filter>
  else: <boolean>
  scale: [<min>,<max>]
  symbolizers:
  - ...
  x-inclusion: <text>

在哪里?

财产

必修的?

描述

默认值

name

对要素样式的内部引用。建议值为 小写 并包含 没有空格 .

空白

title

对规则完成情况的人类可读描述。

空白

filter

Filter 要应用符号,需要计算为真的表达式。不能与一起使用 else .

空白(表示规则将应用于所有功能)

else

指定规则是否为“else”规则。当应用了缩放和筛选之后,没有其他规则适用时,将应用else规则。若要创建其他规则,请将此选项设置为 true .不能与一起使用 filter .

false

scale

Scale 边界显示将应用规则的比例(与缩放级别相关)。

在所有比例下都可见

symbolizers

是的

包含一个或多个的块 symbolizers .这些包含实际的可视化指令。如果过滤器返回“真”,并且视图在比例边界内,则将绘制这些符号。

不适用

x-inclusion

定义规则是否应包含在的样式中 legendOnlymapOnly (见 渲染选择 )

normal

短语法

当一个样式在一个特征样式中有一个规则时,可以省略这两个样式的语法并从其中的第一个参数开始。

因此,以下完整样式是等效的:

feature-styles:
- rules:
  - symbolizers:
    - line:
        stroke-color: '#000000'
        stroke-width: 2
line:
  stroke-color: '#000000'
  stroke-width: 2

实例

Else筛选器

使用 filterelse 一起:

rules:
- name: small
  title: Small features
  filter: ${type = 'small'}
  symbolizers:
  - ...
- name: large
  title: Large features
  filter: ${type = 'large'}
  symbolizers:
  - ...
- name: else
  title: All other features
  else: true
  symbolizers:
  - ...

在上述情况下:

  • 如果某个功能的 type 属性,将使用“小”规则设置样式。

  • 如果某个功能的 type 属性,将使用“大”规则设置样式。

  • 如果某个功能的 type 属性,它将使用“else”规则设置样式。

带刻度的其他

使用 filterelsescale 一起:

rules:
- name: small_zoomin
  scale: [min,10000]
  title: Small features when zoomed in
  filter: ${type = 'small'}
  symbolizers:
  - ...
- name: small_zoomout
  scale: [10000,max]
  title: Small features when zoomed out
  filter: ${type = 'small'}
  symbolizers:
  - ...
- name: else_zoomin
  scale: [min,10000]
  title: All other features when zoomed in
  else: true
  symbolizers:
  - ...
- name: else_zoomout
  scale: [10000,max]
  title: All other features when zoomed out
  else: true
  symbolizers:
  - ...

在上述情况下:

  • 如果某个功能的 type 属性,且地图的比例级别小于10000,将使用“小缩放”规则设置样式。

  • 如果某个功能在其 type 属性,并且地图的比例级别小于10000,它将使用“else_zoomin”规则设置样式。

  • 如果某个功能的 type 属性,且地图的比例级别大于10000,将使用“小缩放”规则设置样式。

  • 如果某个功能在其 type 属性,并且地图的比例级别大于10000,它将使用“else_zoomout”规则设置样式。

Previous: 要素样式
Next: 符号