层¶
SLD文档包含一系列层定义,指示要设置样式的层。每个层定义都是 NamedLayer 参考或提供的 UserLayer .
NamedLayer¶
A NamedLayer 指定要设置样式的现有层以及要应用于该层的样式。样式可以是目录样式和显式定义的样式的任意组合。如果未指定样式,则使用层的默认样式。
这个 <NamedLayer>
元素包含以下元素:
Tag |
必修的? |
Description |
|
是的 |
要设置样式的层的名称。(在目录样式中被忽略。) |
|
不 |
层的说明。 |
|
0..N |
要应用于层的目录样式的名称。 |
|
0..N |
应用于层的样式定义。参见 风格 |
UserLayer¶
A UserLayer 定义要设置样式的新层,以及要应用于该层的样式。层的数据直接在层定义中提供,使用 <InlineFeature>
元素。由于服务器不知道该层,因此还必须显式指定样式。
这个 <UserLayer>
元素包含以下元素:
Tag |
必修的? |
Description |
|
不 |
正在定义的层的名称 |
|
不 |
层的说明 |
|
不 |
提供层数据的一个或多个功能集合,使用GML指定。 |
|
1..N |
用于层的样式定义。参见 风格 |
常用的用法是定义要呈现的几何图形,以指示感兴趣的区域。
InlineFeature¶
安 InlineFeature 元素包含定义要设置样式的层的数据。元素包含一个或多个 <FeatureCollection>
定义数据的元素。每个功能集合可以包含任意数量的 <featureMember>
元素,每个元素包含使用GML标记指定的功能。这些特征可以包含任何类型的几何图形(点、线或多边形,以及这些几何图形的集合)。它们还可以包含标量值属性,这对于标记很有用。
例子¶
以下样式使用默认样式指定一个命名层,以及一个具有内联数据和样式的用户定义层。它显示了美国的州层,在太平洋西北部有一个红色的标记框。
<sld:StyledLayerDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:sld="http://www.opengis.net/sld" version="1.0.0">
<sld:NamedLayer>
<sld:Name>usa:states</sld:Name>
</sld:NamedLayer>
<sld:UserLayer>
<sld:Name>Inline</sld:Name>
<sld:InlineFeature>
<sld:FeatureCollection>
<sld:featureMember>
<feature>
<geometryProperty>
<gml:Polygon>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>
-127.0,51.0 -110.0,51.0 -110.0,41.0 -127.0,41.0 -127.0,51.0
</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</geometryProperty>
<title>Pacific NW </title>
</feature>
</sld:featureMember>
</sld:FeatureCollection>
</sld:InlineFeature>
<sld:UserStyle>
<sld:FeatureTypeStyle>
<sld:Rule>
<sld:PolygonSymbolizer>
<Stroke>
<CssParameter name="stroke">#FF0000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
</sld:PolygonSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>title</ogc:PropertyName>
</sld:Label>
<sld:Fill>
<sld:CssParameter name="fill">#FF0000</sld:CssParameter>
</sld:Fill>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:UserLayer>
</sld:StyledLayerDescriptor>