第一行包含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)的样式例子
实现一个比较复杂的点的样式定义,显示效果如下:
样式定义如下:
opulatedPlacesComplex
Geoserver Beginners Guide: mark composed of three basic shapes
circle
#00FF00
#000000
1
16
square
#FF0000
#000000
1
10
circle
#000000
5
PopulatedPlacesGraphic
Geoserver Beginners Guide: Populated Places with external graphics
image/svg+xml
20
如果想组合不同的符号,可通过Inkscape来设置图形样式,地址:https://inkscape.org/en/。
DashingAndMarkers
Title>Geoserver Beginners Guide: Aqueducts with dashing and circle
#ADD8E6
2
10 10
circle
#ADD8E6
1
5
5 15
7.5
第一个LineSymbolizer画出了虚线效果,第二个LineSymbolizer画出了圆点的效果。
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:一个向内 箭头。
PopulatedPlacesLabeled
Geoserver Beginners Guide: Populated Places with styled labels
circle
#FF0000
#000000
1
8
Arial
12
normal
italyc
0
0
2
5
#000000
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.在多边形上显示文字
在每个国家的多边形边界中显示名称,效果如下: 实现效果的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校验该字段会失败,但是可以正常使用。