规则¶
造型 rules 定义特征的描述。规则结合了一个 filter 有任意数量的象征符号。使用规则中的符号化程序渲染过滤条件计算为真的要素。
句法¶
这个 <Rule>
元素包含以下元素:
Tag |
必修的? |
Description |
|
不 |
指定规则的名称。 |
|
不 |
指定规则的标题。标题用于显示列表和图例。 |
|
不 |
指定描述规则的抽象。 |
|
不 |
指定应用规则时的筛选器控件。参见 过滤器 |
|
不 |
指定应用此规则的刻度范围的最小刻度分母(包括分母)。如果存在,则规则适用于给定的比例和所有较小的比例。 |
|
不 |
指定应用此规则的刻度范围的最大刻度分母(不含)。如果存在,规则适用于大于给定比例的比例。 |
|
0..N |
将样式指定为点。参见 PointSymbolizer |
|
0..N |
将样式指定为线条。参见 LineSymbolizer |
|
0..N |
将样式指定为多边形。参见 PolygonSymbolizer |
|
0..N |
指定文本标签的样式。参见 TextSymbolizer |
|
0..N |
指定栅格数据的样式。参见 RasterSymbolizer |
比例选择¶
规则支持 比例选择 允许指定应用规则的比例范围(假设满足筛选条件,如果存在)。比例选择允许在不同的地图比例下对特征进行不同的描述。特别是,在较小的范围内,通常使用更简单的特征样式,甚至完全阻止某些特征的显示。
通过使用指定比例范围 比例分母 .这些值与地图覆盖的地面距离直接对应,但与地图比例尺的常用“大”和“小”术语相反。换句话说:
大规模 地图封面 less 面积和拥有 较小 比例分母
小规模 地图封面 more 面积和拥有 更大的 比例分母
两个可选元素指定规则的比例范围:
Tag |
必修的? |
Description |
|
不 |
指定应用此规则的刻度范围的最小刻度分母(包括分母)。如果存在,则规则适用于给定的比例和所有较小的比例。 |
|
不 |
指定应用此规则的刻度范围的最大刻度分母(不含)。如果存在,规则适用于大于给定比例的比例。 |
备注
电流标度也可以通过 wms_scale_denominator
SLD environment variable .这允许在 筛选表达式 .
下面的示例显示了在一对规则中使用比例选择。规则规定:
在天平上 在上面 1:2万( 更大的 刻度,带刻度分母 较小 超过20000)特征用10个像素的红色方块表示,
在天平上 在或低于 1:2万( 较小 刻度,带刻度分母 更大的 超过20000)个特征用4像素的蓝色三角形表示。
<Rule>
<MaxScaleDenominator>20000</MaxScaleDenominator>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>square</WellKnownName>
<Fill><CssParameter name="fill">#FF0000</CssParameter>
</Mark>
<Size>10</Size>
</Graphic>
</PointSymbolizer>
</Rule>
<Rule>
<MinScaleDenominator>20000</MinScaleDenominator>
<PointSymbolizer>
<Graphic>
<Mark>
<WellKnownName>triangle</WellKnownName>
<Fill><CssParameter name="fill">#0000FF</CssParameter>
</Mark>
<Size>4</Size>
</Graphic>
</PointSymbolizer>
</Rule>
估价单¶
在SLD文档中,每个 <FeatureTypeStyle>
可以包含许多规则。多规则SLD是主题样式的基础。在Geoserver中 <FeatureTypeStyle>
对每个已处理的要素进行一次评估。其中的规则按照它们出现的顺序进行评估。当某个要素的过滤条件(如果有)为真并且该规则在当前地图比例下启用时,将应用该规则。通过使用规则中的每个符号化程序按其出现的顺序呈现要素来应用规则。在父对象的图像缓冲区中执行渲染 <FeatureTypeStyle>
。因此,早些时候在 FeatureTypeStyle
和 Rule
都被渲染 before 在后面的文档中出现的符号化(这是“画家模型”的渲染方法)。
实例¶
以下规则仅适用于具有 POPULATION
属性大于100000,并将这些特征标记为红色点。
<Rule>
<ogc:Filter>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>POPULATION</ogc:PropertyName>
<ogc:Literal>100000</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#FF0000</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>
可以添加一个附加规则,该规则适用于 POPULATION
属性小于100000,并将其标记为绿点。
<Rule>
<ogc:Filter>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>POPULATION</ogc:PropertyName>
<ogc:Literal>100000</ogc:Literal>
</ogc:PropertyIsLessThan>
</ogc:Filter>
<PointSymbolizer>
<Graphic>
<Mark>
<Fill><CssParameter name="fill">#0000FF</CssParameter>
</Mark>
</Graphic>
</PointSymbolizer>
</Rule>