geoserver图层样式

  1. Styled Layer Descriptor
     标准描述了稳当的结构合使用规则。一个文档包含了符号定义和绘制规则,那么这个文档就叫做Styled Layer Desciptor(SLD)样式,它是一个text/Xml文件,扩展名为.sld。SLD基于XML标记语言,附加的标准是一个XSD schema,XSD schema定义了SLD语法。
  2. 样式文档结构
     样式最外层不分包含如下代码:

    

 第一行包含xml定义,每一个样式文件的根节点都为StyledLayerDescriptor,包含了样式标准的版本属性version(Geoserver可使用1.0.0和1.1.0 SLD版本),还包含了命名空间和模型属性。
 StyledLayerDescriptor节点包含了一个NameLayer或者UserLayer的集合,这两个节点下面又包含了UserStyle节点集合。
 UserStyle节点下包含FeatureTypeStyle或者CoverageStyle节点。它们下面都包含了rule集合元素。rule节点定义了怎样绘制feature。下面是一个简单的样式文件:



    
        capitals
        
            capitals
            Capital cities
            
                
                    Capitals
                    
                        
                        
                        circle
                        
                        
                        #FFFFFF
                        
                        
                        
                        
                        #000000
                        
                        
                        2
                        
                        
                        
                        
                        1.0
                        
                        
                        6
                        

                        
                    
                
            
        
    

 UserStyle定义了一个circle符号使用白色填充,黑色边界。WellKnownName包括:circle、square、triangel、star、cross、x。
使用geoserver-数据-Styles可查看配置并检验Style文件是否合法。
 Rule节点下可包含多个PointSymbolizer,样式文件渲染顺序是倒叙的,放在后面的PointSymbolizer渲染在地图上一层,前面的PointSymbolizer渲染在地图的下一层,相当于z-index的顺序。
3. 实现一个点包含多个形状(包含多个PointSymbolizer)的样式例子
 实现一个比较复杂的点的样式定义,显示效果如下:
geoserver图层样式_第1张图片样式定义如下:



    
        opulatedPlacesComplex
        
            Geoserver Beginners Guide: mark composed of three basic shapes
            
                
                    
                        
                            
                                circle
                                
                                    #00FF00
                                
                                
                                    #000000
                                    1
                                
                            
                            16
                        
                    
                    
                        
                            
                                square
                                
                                    #FF0000
                                
                                
                                    #000000
                                    1
                                
                            
                            10
                        
                    
                    
                        
                            
                                circle
                                
                                    #000000
                                
                            
                            5
                        
                    
                
            
        
    

  1. 实现一个点包含外部资源形状(ExternalGraphic)的样式例子
     显示的点通过一个外部svg图片来显示,效果如下:
    geoserver图层样式_第2张图片样式定义如下:


    
        PopulatedPlacesGraphic
        
            Geoserver Beginners Guide: Populated Places with external graphics
            
                
                    
                        
                            
                                
                                image/svg+xml
                            
                            20
                        
                    
                
            
        
    

 如果想组合不同的符号,可通过Inkscape来设置图形样式,地址:https://inkscape.org/en/。

  1. 线条样式,大自然水渠的样式
     想象输入去表达大自然的水渠?在地图中,水渠经常使用虚线和远点来表示。效果如下:
    geoserver图层样式_第3张图片 实现样式的xml如下所示:


   
       DashingAndMarkers
       
           Title>Geoserver Beginners Guide: Aqueducts with dashing and circle
           
               
                   
                       
                           #ADD8E6
                           2
                           10 10
                       
                   
                   
                       
                           
                               
                                   
                                       circle
                                       
                                           #ADD8E6
                                           1
                                       
                                   
                                   5
                               
                           
                           5 15
                           7.5
                       
                   
               
           
       
   

 第一个LineSymbolizer画出了虚线效果,第二个LineSymbolizer画出了圆点的效果。

  1. 多边形样式,使用阴影填充多边形
      一般多边形都是通过边界和单一填充颜色来表示。但多边形也可以使用其他图形来作为阴影。下图给每个国家使用点来填充,效果如下:
    geoserver图层样式_第4张图片 实现样式的xml文件内容如下:


    
        CountriesHatching
        
            Geoserver Beginners Guide: Countries with hatching
            
                
                    
                        
                            
                                
                                    
                                        shape://dot
                                        
                                            #29A6A6
                                            3
                                        
                                    
                                    16
                                
                            
                        
                        
                            #A52A2A
                            2
                        
                    
                
            
        
    

 多边形的标记为PolygonSymbolizer,使用WellKonwnName为shpe://dot显示点效果。Stroke设置了点的边框颜色和大小。Geoserver为我们提供了很多标记效果。
 shape://vertline:垂直线。
 shape://horline: 水平线。
 shape://slash: 对角线向前倾斜(“/”)。
 shape://backslash:对角线向后斜线(“\”)。
 shape://dot: 一个小的圆圈,圆圈之间有空隙。
 shape://plus: 一个加号,加号之前没有空隙。
  shape://times:一个“X”符号,没有空隙。
  shape://oarrow:一个向外的箭头。
  shape://carrow:一个向内 箭头。

  1. 在点上显示文字
     在显示每个国家的首都时,一般都会在中心坐标显示首都名字,可通过字体标记来显示字体。效果如下:
    geoserver图层样式_第5张图片 实现样式的xml文件如下:


   
       PopulatedPlacesLabeled
       
           Geoserver Beginners Guide: Populated Places with styled labels
           
               
                   
                       
                           
                               circle
                               
                                   #FF0000
                               
                               
                                   #000000
                                   1
                               
                           
                           8
                       
                   
                   
                       
                       
                           Arial
                           12
                           normal
                           italyc
                       
                       
                           
                               
                                   0
                                   0
                               
                               
                                   2
                                   5
                               
                           
                       
                       
                           #000000
                       
                   
               
           
       
   

  1. 在连线上显示文字
     一般某一段线路都会对应有名称,显示效果如下:
    geoserver图层样式_第6张图片 实现样式的xml文件如下:


   
       RoadsLabeled
       
           Title>Geoserver Beginners Guide: Roads with labels along the line
           
               
                   
                       
                           #000000
                           4
                       
                   
                   
                       
                           #FF0000
                           2
                       
                   
                   
                       
                       
                           
                               10
                           
                       
                       
                           #000000
                       
                       true
                       90
                       400
                       300
                   
               
           
       
   

 VendorOption设置一些文字的渲染参数,repeat表示道路显示文字的间隔距离,followLine设置文字是否颜色线路方向显示。

9.在多边形上显示文字
 在每个国家的多边形边界中显示名称,效果如下: geoserver图层样式_第7张图片 实现效果的xml文件内容如下:



   
       CountriesLabeled
       
           Geoserver Beginners Guide: Countries with labels
           
               
                   
                       
                           #29A6A6
                       
                       
                           #A52A2A
                           2
                       
                   
                   
                       
                       
                           Arial
                           11
                           normal
                           bold
                       
                       
                           
                               
                                   0.5
                                   0.5
                               
                           
                       
                       
                           #000000
                       
                       50
                       150
                       
                           3
                           
                               #FFFFFF
                           
                       
                   
               
           
       
   

 Halo节点下设置文字的阴影效果,geoserver校验该字段会失败,但是可以正常使用。

你可能感兴趣的:(geoserver)