Skip to main content

对 WMS 服务使用“样式化图层描述符”

“样式化图层描述符”(SLD) 可通过使用开放地理空间联盟 (OGC) 所定义的 XML 规范发布应用于 WMS 服务的符号化方案。 此外,服务的客户端可以使用自定义的 SLD 文件对 WMS 服务应用自己所选择的符号。

SLD 文件和 SLD 样式

SLD 文件是一种遵循 OGC SLD 语法的 XML 文件,从而在服务器与客户端的通信中可以被理解。

SLD 样式本身保存在 SLD 文件中。 从逻辑上讲,一个此类 SLD 样式可对指定 WMS 图层中的一组特定要素定义符号化规则。 一个样式可以有多个规则,而且每个规则都可以有一个过滤器以描述要渲染哪些要素,以及多个符号化器以描述这些要素要如何渲染。

以下是一个 SLD XML 文档的样本:

<sld:StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<!--
ESRI_StatesCitiesRivers_USA @
http://sampleserver1.arcgisonline.com/arcgis/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?
-->
<sld:NamedLayer>
<!--
layer "2" is the "cities" point layer in the WMS service
-->
<sld:Name>2</sld:Name>
<sld:UserStyle>
<!--
 style should be applied on layer "2", reference the style by it's name "pointSymbolizer"
-->
<sld:Name>pointSymbolizer</sld:Name>
<sld:Title>pointSymbolizer</sld:Title>
<sld:FeatureTypeStyle>
 <sld:Rule>
  <sld:PointSymbolizer>
   <sld:Graphic>
    <sld:Mark>
     <!-- uses a circle to mark a city -->
     <sld:WellKnownName>circle</sld:WellKnownName>
     <!-- fill circle with color #666666 -->
     <sld:Fill>
      <sld:CssParameter name="fill">#666666</sld:CssParameter>
      <sld:CssParameter name="fill-opacity">1</sld:CssParameter>
     </sld:Fill>
     <!-- circle boundary with color #666666 -->
     <sld:Stroke>
      <sld:CssParameter name="stroke">#666666</sld:CssParameter>
      <sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
      <sld:CssParameter name="stroke-width">1</sld:CssParameter>
     </sld:Stroke>
    </sld:Mark>
    <!-- circle opacity 1.0 -->
    <sld:Opacity>1</sld:Opacity>
    <!-- circle size "3" -->
    <sld:Size>3</sld:Size>
    <sld:Rotation>0</sld:Rotation>
   </sld:Graphic>
  </sld:PointSymbolizer>
 </sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>

ArcGIS Server 中的 WMS SLD 执行基于 OGC 样式化图层描述符 (SLD) 执行规范。 要获取 SLD 的一般性概述,请参阅 OGC 网站上的样式化图层描述符页面。

ArcGIS Server 中的 WMS 样式化图层描述符 (SLD) 支持

ArcGIS Server 支持 WMS 样式化图层描述符 (SLD) 版本 1.0.0 执行规范。 有关 SLD 的一般性概述,请参阅 OGC 网站上的样式化图层描述符页面。

下面列出了 ArcGIS Server WMS 服务支持和不支持的 SLD 的特定元素。

支持的 SLD 元素

ArcGIS Server WMS 服务支持以下 SLD 元素:

不支持的 SLD 元素

ArcGIS Server WMS 服务不支持以下 SLD 元素:

要素符号化器和几何类型

在 10.7 版本中,要素符号化器 LineSymbolizerPolygonSymbolizerPointSymbolizer 可用于对任何类型的要素几何进行符号化。 例如,PointSymbolizer 可用于对面要素进行符号化。 下表列出了当使用的符号化器与其原生几何类型不匹配时的行为:

线

多边形

LineSymbolizer

  • 的最低受支持版本
  • 轮廓使用 LineSymbolizer 中指定的笔划进行符号化。

  • 透明填充。

  • 使用 LineSymbolizer 中指定的笔划绘制的实心虚线。

PolygonSymbolizer

  • 使用 PolygonSymbolizer 中指定的笔划绘制的实心虚线。
  • 的最低受支持版本
  • 方形标记符号使用 PolygonSymbolizer 中指定的填充,轮廓使用其中指定的笔划。

  • GraphicFill 元素不受支持。

PointSymbolizer

  • 单个标记符号使用 PointSymbolizer 中指定的符号进行符号化,并放置在线的中心。

  • Graphic 元素不受支持。

  • 单个标记符号使用 PointSymbolizer中指定的符号进行符号化,并放置在面的质心。

  • Graphic 元素不受支持。

  • 的最低受支持版本

使用 SLD 发布多个样式

可以采用以下工作流,通过 SLD 发布 WMS 图层的多个样式:

  1. 使用系统生成的服务能力文件创建一个 WMS 服务。

  2. 创建一个对 WMS 服务中的每个图层定义了多个样式的 SLD XML 文档。

  3. 对 SLD XML 与 WMS 服务进行绑定。

要做到这一点,请执行以下步骤:

在 ArcGIS Server Manager 中:

  1. 按照 WMS 服务中强调的指导原则发布 WMS 服务

  2. 使用 SLD 语法创建 XML 文档,为要发布的各 WMS 图层定义其他样式。 可以将此 SLD XML 文档保存到本地磁盘或使其可作为 URL 访问。

  3. 打开 Manager 并登录。 如需此步骤的帮助,请参阅登录 Manager

  4. 单击服务 > 管理服务

  5. 管理服务模块中,找到您的服务并单击编辑 。 如果列表中未显示该服务,那么其可能位于**站点(根)**文件夹下的某一子文件夹内。

  6. 编辑模块中,单击功能

  7. 在功能列表中,单击 WMS 确保 WMS 项被启用。

  8. WMS 配置列表中,您将看到 SLD 路径或 URL 文本框。 输入 SLD XML 文档的 URL 或使用文件浏览器在磁盘上查找 SLD XML。

  9. 单击保存并重新启动。 将立即应用对服务执行的编辑操作。

注:

要确保 SLD XML 与 WMS 服务正确绑定,执行以下任一操作:

  • 在浏览器中提交 WMS GetCapabilities 请求。 在 XML 响应中,应该为 SLD 中所定义的各 WMS 图层的每个附加样式都指定一个