geoserver sld阅读笔记

简介SLD 

地理空间数据没有内在的可视化组件。 为了能看到的数据,必须风格。 样式指定颜色,厚度和用于呈现在地图数据等可见属性。

在GeoServer的,造型是使用一种标记语言,称为实现样式化图层描述符 ,或SLD的简称。 SLD是一种基于XML的标记语言,是非常强大的,虽然有些复杂。 该页面提供了一个介绍SLD以及它是如何工作的范围内的GeoServer的能力。

 

 GeoServer使用SLD专门用于造型,术语“SLD”和“风格”会经常被互换使用。

SLD概念

在GeoServer的造型是最经常使用XML SLD样式文件中规定。 风格文件与GeoServer的层(featuretypes)相关的指定应如何呈现 。 样式文档指定一个单一命名图层 ,并为它的用户风格 。 层和风格可以具有元数据元素,如名称识别它们,显示它们一个标题 ,和描述它们的细节的抽象 。 内的顶层样式是一个或多个特征类型的风格 ,其充当“虚层”,以提供对描绘顺序(允许的造型效果,如套管线道路)的控制。 每个要素类型样式包含一个或多个规则,它们控制如何基于功能属性和缩放级别样式被应用。 规则通过使用过滤器 ,它是包含谓词 , 表达式过滤功能逻辑条件选择适用的功能。 以指定的样式为单独的特征的细节,规则包含任意数量symbolizers的。 Symbolizers指定样式的 , 线多边形 ,以及栅格文本标签 。

欲了解更多信息,请参阅SLD参考 。

风格类型

矢量数据的GeoServer可以服务包括三类形状: 点,线和多边形 。 线(一维形状)是最简单的,因为它们仅具有边缘样式(也称为“stroke”)。 多边形的二维形状,有一个边缘和一个内部(也称为“fill”),这两者都可以有不同的样式。 尽管他们缺乏维度,他们都具有edge和fill(更不用说size),能够修改样式。 对于填充,颜色可指定; 对于stroke(笔划),颜色(color)和厚度(thickness)可以被指定。

GeoServer的同时也是栅格数据。 这可以装饰有各种各样的过彩色调色板,不透明度,对比度和其它参数的控制。

更先进的样式是可能的。 点可以与众所周知的形状,如圆形,方形,星形,甚至是自定义的图形或文字来指定。 线可以风格以短线风格(dash
styles .
)和散列(hashes)来修饰。
 多边形可以填充自定义平铺图形。 样式可以基于在数据属性,因此,某些特征是不同的样式。 基于属性的文本标签也可以被修饰(style)。 造型(styling)也可以通过缩放水平来确定,从而使功能显示在适合其表观大小的方法。可能性是巨大的。

一个基本的风格例子

了解SLD的一个好方法是学习风格的例子。 下面是可应用到包含分的层,样式它们作为红色圆圈为6像素的大小的简单的SLD。 (这是在Points指导书中的第一个例子)。

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

虽然这个例子看上去很长,只有几行是真正重要的是理解。 第14行指出了“PointSymbolizer”被用来style的数据点。线15-17状态点都将使用指定的图形形状样式通过一个“公知的名称”,在这种情况下,一个圆。 SLD提供的名字为许多形状,如“square”,“star”,“triangle”等行18-20指定要填充的#FF0000(红色)颜色的形状。 这是一个RGB颜色代码,写入十六进制,在#RRGGBB的形式。 最后, 第22行指定形状的大小为6个像素的宽度。 该结构的其余部分包含关于样式的元数据,如名称标识的样式和在图例使用的标题。

 

 在SLD文件的一些标签都有前缀,如OGC。 这是因为它们是在XML命名空间来定义。 顶级StyledLayerDescriptor标签(2-7行 )指定了两个XML命名空间,一个叫的xmlns,和一个叫的xmlns:OGC。第一空间是默认的文档,所以属于它的标签不需要前缀。 属于第二标记所需要的前缀OGC:。 实际上,该命名空间前缀可以是任何标识符。 第一名字空间可以被称为的xmlns:SLD(因为它往往是),然后在这个例子中所有的标签都需要一个SLD:前缀。 关键的一点是,标签需要有前缀,它们属于命名空间。

转载自:https://blog.csdn.net/supernever/article/details/40621033

You may also like...

退出移动版