OGC标准介绍 8

I. SLD-图层样式描述

· 概述

SLD(OpenGIS® Styled Layer Descriptor)当前版本是1.1.0。SLD是一种描述地图图层样式的标准,一般用于WMS。一个地图不仅包含数据源组成,还需要对数据进行符号化和渲染,SLD就是这个定义地图图层符号化和渲染信息的标准。

· SLD Schema

和GML类似,SLD也通过一些XML Schema来定义SLD文档的结构,这些定义可以通过访问http://schemas.opengis.net/sld/ 得到。SLD的Schema还依赖其它的OGC标准的Schema,其中包括:GML[1]、Filter Encoding[2]、Symbology Encoding[3]

· SLD简单例子

下面是一个SLD的简单例子,这里对一个多边形图层进行了填充样式的定义:


   
   xml version="1.0" encoding="UTF-8"?>

<StyledLayerDescriptor version="1.1.0"

xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"

xmlns="http://www.opengis.net/sld"

xmlns:ogc="http://www.opengis.net/ogc"

xmlns:se="http://www.opengis.net/se"

xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<NamedLayer>

<se:Name>OCEANSEA_1M:Foundation
    
    se:Name>

<UserStyle>

<se:Name>GEOSYM
     
     se:Name>

<IsDefault>1
      
      IsDefault>

<se:FeatureTypeStyle>

<se:FeatureTypeName>Foundation
       
       se:FeatureTypeName>

<se:Rule>

<se:Name>main 
        se:Name> <se:PolygonSymbolizer uom="http://www.opengeospatial.org/sld/units/pixel"> <se:Name>MySymbol 
         se:Name> <se:Description> <se:Title>Example Symbol 
          se:Title> <se:Abstract>This is just a simple example. 
           se:Abstract>  
            se:Description> <se:Geometry> <ogc:PropertyName>GEOMETRY 
             ogc:PropertyName>  
              se:Geometry> <se:Fill> <se:SvgParameter name="fill">#96C3F5 
               se:SvgParameter>  
                se:Fill>  
                 se:PolygonSymbolizer>  
                  se:Rule>  
                   se:FeatureTypeStyle>  
                    UserStyle>  
                     NamedLayer>  
                      StyledLayerDescriptor>

其中关键的还是在于Symbology Encoding(SE)标准定义的符号化和渲染的方式,由于SE和SLD的依赖关系,因此,在这里也顺便通过几个简单的例子对SE进行一下介绍。

· SE示例

在SE标准中给出了几个符号化定义的例子,非常的浅显易懂,这几个例子分别定义了点、线、面、文本等内容应该使用什么样的符号化方式显示出来,而在其中出现的Mark、Stroke、Fill等元素也很容易理解,下面就从这几个例子大致了解一下SE标准的定义。

点数据符号化:

<PointSymbolizer version="1.1.0"

xsi:schemaLocation="http://www.opengis.net/se Symbolizer.xsd" xmlns="http://www.opengis.net/se"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/metre">

<Name>MyPointSymbolizer
   
   Name>

<Description>

<Title>Example Pointsymbolizer
    
    Title>

<Abstract>This is just a simple example of a point symbolizer.


     
     Abstract>


      
      Description>

<Graphic>

<Mark>

<WellKnownName>star
       
       WellKnownName>

<Fill>

<SvgParameter name="fill">#ff0000 
        SvgParameter>  
         Fill>  
          Mark> <Size>8.0 
           Size>  
            Graphic>  
             PointSymbolizer>

线数据符号化:

<LineSymbolizer version="1.1.0"

xsi:schemaLocation="http://www.opengis.net/se Symbolizer.xsd" xmlns="http://www.opengis.net/se"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/metre">

<Name>MyLineSymbolizer
   
   Name>

<Description>

<Title>Example Symbol
    
    Title>

<Abstract>This is just a simple example of a line symbolizer.


     
     Abstract>


      
      Description>

<Stroke>

<SvgParameter name="stroke">#0000ff
       
       SvgParameter>

<SvgParameter name="stroke-width">2 
        SvgParameter>  
         Stroke>  
          LineSymbolizer>

面数据符号化:

<PolygonSymbolizer version="1.1.0"

xsi:schemaLocation="http://www.opengis.net/se Symbolizer.xsd" xmlns="http://www.opengis.net/se"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/pixel">

<Name>MyPolygonSymbolizer
   
   Name>

<Description>

<Title>Example PolygonSymbolizer
    
    Title>

<Abstract>This is just a simple example of a polygon symbolizer.


     
     Abstract>


      
      Description>

<Fill>

<SvgParameter name="fill">#aaaaff
       
       SvgParameter>

 
        Fill> <Stroke> <SvgParameter name="stroke">#0000aa 
         SvgParameter>  
          Stroke>  
           PolygonSymbolizer>

文本标注:

<TextSymbolizer version="1.1.0"

xsi:schemaLocation="http://www.opengis.net/se Symbolizer.xsd" xmlns="http://www.opengis.net/se"

xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/pixel">

<Name>MyTextSymbolizer
   
   Name>

<Description>

<Title>Example TextSymbolizer
    
    Title>

<Abstract>This is just an example of a text symbolizer using the

FormatNumber function.
     
     Abstract>


      
      Description>

<Geometry>

<ogc:PropertyName>locatedAt
       
       ogc:PropertyName>

 
        Geometry> <Label> <ogc:PropertyName>hospitalName 
         ogc:PropertyName>  
          Label> <Font> <SvgParameter name="font-family">Arial 
           SvgParameter> <SvgParameter name="font-family">Sans-Serif 
            SvgParameter> <SvgParameter name="font-style">italic 
             SvgParameter> <SvgParameter name="font-size">10 
              SvgParameter>  
               Font> <Halo /> <Fill> <SvgParameter name="fill">#000000 
                SvgParameter>  
                 Fill>  
                  TextSymbolizer>


[1] http://schemas.opengis.net/gml/

[2] http://schemas.opengis.net/filter/

[3] http://schemas.opengis.net/se

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值