SLD简介

地理空间数据没有内在的可视组件。为了查看数据,必须对其设置样式。样式指定用于在地图上渲染数据的颜色、厚度和其他可见属性。

在geoserver中,使用一种名为 Styled Layer Descriptor 或简称SLD。SLD是一种基于XML的标记语言,功能非常强大,尽管有些复杂。本页介绍了SLD的功能及其在GeoServer中的工作方式。

备注

由于geoserver专门使用sld进行样式设计,因此术语“sld”和“style”通常可以互换使用。

SLD概念

在geoserver中,通常使用XML指定样式 SLD样式文档 .样式文档与geoserver关联 特征类型 )指定它们应该如何 提供 .样式文档指定一个 命名层 和A 用户风格 为了它。层和样式可以具有元数据元素,例如 name 识别它们,a 标题 用于显示它们,以及 摘要 详细描述。在顶层样式中有一个或多个 要素类型样式 它作为“虚拟层”提供对渲染顺序的控制(允许样式设置效果,例如道路的套管线)。每个要素类型样式包含一个或多个 规则 ,它控制如何基于特征属性和缩放级别应用样式。规则通过使用选择适用的功能 过滤器 ,这是包含 谓语表达过滤器功能 .要为各个功能指定样式的详细信息,规则包含 符号 .符号指定样式 线多边形 以及 粗锉文本标签 .

有关更多信息,请参阅 SLD参考 .

造型类型

GeoServer可以提供的矢量数据由三类形状组成: 点、线和多边形 .线条(一维形状)是最简单的,因为它们只有边到样式(也称为“笔划”)。多边形,二维形状,有一个边和一个内边(也称为“填充”),两者都可以有不同的样式。点,即使它们没有尺寸,也有一个边和一个填充(更不用说尺寸),可以设置样式。对于填充,可以指定颜色;对于笔划,可以指定颜色和厚度。

geoserver还提供栅格数据。这可以通过对调色板、不透明度、对比度和其他参数的各种控制来设置样式。

更高级的样式也是可能的。点可以用众所周知的形状指定,如圆、正方形、星形,甚至自定义图形或文本。可以用破折号样式和散列来设置线条的样式。多边形可以用自定义瓦片图形填充。样式可以基于数据中的属性,因此某些特性的样式不同。功能上也可以使用文本标签。样式也可以通过缩放级别来确定,以便以适合其外观大小的方式显示功能。可能性是巨大的。

基本样式示例

学习SLD的一个好方法是学习造型示例。下面是一个简单的SLD,它可以应用于包含点的层,将其设置为6像素大小的红色圆形。(这是 剖面图 SLD食谱

 1<?xml version="1.0" encoding="ISO-8859-1"?>
 2<StyledLayerDescriptor version="1.0.0"
 3    xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
 4    xmlns="http://www.opengis.net/sld"
 5    xmlns:ogc="http://www.opengis.net/ogc"
 6    xmlns:xlink="http://www.w3.org/1999/xlink"
 7    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 8  <NamedLayer>
 9    <Name>Simple point</Name>
10    <UserStyle>
11      <Title>GeoServer SLD Cook Book: Simple point</Title>
12      <FeatureTypeStyle>
13        <Rule>
14          <PointSymbolizer>
15            <Graphic>
16              <Mark>
17                <WellKnownName>circle</WellKnownName>
18                <Fill>
19                  <CssParameter name="fill">#FF0000</CssParameter>
20                </Fill>
21              </Mark>
22              <Size>6</Size>
23            </Graphic>
24          </PointSymbolizer>
25        </Rule>
26      </FeatureTypeStyle>
27    </UserStyle>
28  </NamedLayer>
29</StyledLayerDescriptor>

虽然这个例子看起来很长,但只有几行是真正重要的。 第14行 声明将使用“点符号”将数据样式设置为点。 Lines 15-17 声明将使用由“已知名称”指定的图形形状来设置点的样式,在本例中是一个圆。SLD为许多形状提供名称,如“正方形”、“星形”、“三角形”等。 Lines 18-20 指定形状应填充颜色为 #FF0000 (红色)。这是一个以十六进制写成的RGB颜色代码,格式为rrggbb。最后, 第22行 指定形状的宽度为6像素。结构的其余部分包含有关样式的元数据,例如标识样式的名称和用于图例的标题。

备注

在SLD文档中,有些标签有前缀,例如 ogc: .这是因为它们在 XML命名空间 .最高层 StyledLayerDescriptor 标签(标签) lines 2-7 )指定两个XML命名空间,一个名为 xmlns 还有一个叫 xmlns:ogc .第一个名称空间是文档的默认名称空间,因此属于它的标记不需要前缀。属于第二个的标记需要前缀 ogc: .实际上,名称空间前缀可以是任何标识符。无法调用第一个命名空间 xmlns:sld (通常如此)然后本例中的所有标记都需要 sld: 前缀。关键是,标记需要有它们所属命名空间的前缀。

SLD食谱 有关SLD样式的更多示例。

Previous: SLD造型
Next: 使用SLD