规则¶
规则是 造型指令集 ,主要包括 symbolizers 与可选条件语句组合。
如果条件语句存在 在规则中,则仅执行样式指令 如果条件返回true .否则,将跳过规则。
如果不存在条件语句 在规则中,那么样式指令将 始终执行 .
规则可用的条件语句类型有:
规则包含在 feature styles .对于可以创建的规则的数量没有限制,并且对于所有规则必须相互排斥没有限制(如中所述,某些规则可能适用于相同的功能)。
句法¶
以下是规则的基本语法。请注意,块的内容并没有全部展开;有关相关语法,请参阅其他部分。
rules:
- name: <text>
title: <text>
filter: <filter>
else: <boolean>
scale: [<min>,<max>]
symbolizers:
- ...
x-inclusion: <text>
在哪里?
财产 |
必修的? |
描述 |
默认值 |
---|---|---|---|
|
不 |
对要素样式的内部引用。建议值为 小写 并包含 没有空格 . |
空白 |
|
不 |
对规则完成情况的人类可读描述。 |
空白 |
|
不 |
Filter 要应用符号,需要计算为真的表达式。不能与一起使用 |
空白(表示规则将应用于所有功能) |
|
不 |
指定规则是否为“else”规则。当应用了缩放和筛选之后,没有其他规则适用时,将应用else规则。若要创建其他规则,请将此选项设置为 |
|
|
不 |
Scale 边界显示将应用规则的比例(与缩放级别相关)。 |
在所有比例下都可见 |
|
是的 |
包含一个或多个的块 symbolizers .这些包含实际的可视化指令。如果过滤器返回“真”,并且视图在比例边界内,则将绘制这些符号。 |
不适用 |
|
不 |
定义规则是否应包含在的样式中 |
|
短语法¶
当一个样式在一个特征样式中有一个规则时,可以省略这两个样式的语法并从其中的第一个参数开始。
因此,以下完整样式是等效的:
feature-styles:
- rules:
- symbolizers:
- line:
stroke-color: '#000000'
stroke-width: 2
line:
stroke-color: '#000000'
stroke-width: 2
实例¶
Else筛选器¶
使用 filter
和 else
一起:
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”规则设置样式。
带刻度的其他¶
使用 filter
, else
和 scale
一起:
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”规则设置样式。