目录
一、样式化图层描述符
WMS允许调整地图中图层使用的符号。这是通过样式化图层描述符来实现的。
一个样式化图层描述符描述了符号的大小、颜色和标记。样式化图层描述符比较复杂,以至于必须有它们自己的OGC规范文档(www.opengeospatial.org/standards/sld)定义应该如何操作它们。
样式化图层描述符可由服务发布者或客户端来设计。要设计一个真正有用的样式化图层描述符,必须了解WMS服务中的图层,而这可以通过可选的DescribeLayer操作来实现。
一旦创建了样式化图层描述符,有几种途径来使用:
- 最常用的是将其放置到Web服务器中,然后在GetMap请求中将STYLE参数指向该文件的URL。
- 另一种方式是在GetMap请求的可选SLD_BODY参数中直接设置对应的XML文本。当然,这一种方式将导致URL非常的长,而且需要大量的特殊字符编码或转义。
样式化图层描述符中使用的XML往往包含许多嵌套层次而且比较复杂,因此,从头编写样式化图层描述符是基本不可能的,也没有必要。可使用一个样式化图层描述符文件,在其基础上进行调整,以满足需求。另外也可以使用QGIS,在窗口环境中样式化图层,然后将其导出为样式化图层描述符文件。这是非常有用的,但当前有一个很大的限制,那就是QGIS还不支持将标签信息输出到样式化图层描述符文件。
GeoServer中将数据与样式信息完全分开存储。在“图层”页面中定义需要发布的数据库,在“Styles”页面中定义可访问的样式化图层描述符。需要在“编辑图层”页面的“发布”面板中设置图层与样式的链接。
二、使用GetStyles操作请求样式
GetStyles是WMS的一个可选操作。例如对于如下GetStyles请求:
其响应将返回每个图层对应的样式,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<sld:StyledLayerDescriptor version="1.0.0"
xmlns="http://www.opengis.net/ogc"
xmlns:sld="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<!-- layer "0" -->
<sld:NamedLayer>
<sld:Name>0</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
<!-- layer "1" -->
<sld:NamedLayer>
<sld:Name>1</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
<!-- layer "2" -->
<sld:NamedLayer>
<sld:Name>2</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
三、使用GetLegendGraphic操作请求图例
GetLegendGraphic也是WMS的一个可选操作,用于获取图例。
例如,请求本地计算机GeoServer自带数据的sf:sfdem的图例:
返回结果如下所示: