Skip to main content

Verwenden von Styled-Layer-Deskriptoren mit WMS-Services

Mit Styled-Layer-Deskriptoren (SLDs) können Sie Symbolisierungsschemas für den WMS-Service veröffentlichen, der eine von der Open Geospatial Consortium, Inc. (OGC) definierte XML-Spezifikation verwendet. Clients des Service können alternativ mithilfe eines eigenen SLDs selbst ausgewählte Symbole anwenden.

SLD-Dateien und SLD-Styles

Eine SLD-Datei ist eine XML-Datei, die die OGC SLD-Syntax einhält, damit sie in der Server-Client-Kommunikation verstanden wird.

SLD-Styles werden physisch in der SLD-Datei gespeichert. Logisch definiert ein solcher SLD-Style Symbolisierungsregeln für bestimmte Feature-Sets innerhalb eines angegebenen WMS-Layers. Ein Style kann mehrere Regeln haben, und jede Regel kann einen Filter aufweisen, der beschreibt, welche Features gerendert werden sollen, sowie mehrere Symbolisierungen, die beschreiben, wie diese Features gerendert werden sollen.

Hier sehen Sie ein Beispiel für ein SLD-XML-Dokument:

<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>

Die Implementierung von WMS SLD in ArcGIS Server basiert auf der Implementierungsspezifikation für Styled-Layer-Deskriptoren (SLD) von OGC. Eine allgemeine Übersicht über SLD finden Sie auf der Seite Styled Layer Descriptor der OGC-Website.

WMS Styled Layer Descriptor-(SLD-)Support in ArcGIS Server

ArcGIS Server unterstützt die Implementierungsspezifikation für Version 1.0.0 des WMS Styled Layer Descriptor (SLD). Eine allgemeine Übersicht des SLD finden Sie auf der Seite Styled Layer Descriptor der OGC-Website.

Die von ArcGIS-Server-WMS-Services unterstützten und nicht unterstützten Elemente des SLD werden im Folgenden aufgeführt:

Unterstützte SLD-Elemente

Folgende SLD-Elemente werden von ArcGIS-Server-WMS-Services unterstützt:

Nicht unterstützte SLD-Elemente

Folgende SLD-Elemente werden nicht von ArcGIS-Server-WMS-Services unterstützt:

Feature-Symbolisierungen und Geometrietypen

In 10.7 können die Feature-Symbolisierungen LineSymbolizer, PolygonSymbolizer und PointSymbolizer zum Symbolisieren jeglicher Feature-Geometrie verwendet werden. Ein PointSymbolizer kann z. B. zum Symbolisieren eines Polygon-Features verwendet werden. In der folgenden Tabelle wird das Verhalten aufgelistet, das auftritt, wenn die verwendete Symbolisierung nicht mit dem nativen Geometrietyp übereinstimmt:

Linie

Polygon

Punkt

LineSymbolizer

  • Umrisslinie wird symbolisiert mit dem in LineSymbolizer angegebenen Strich.

  • Transparente Füllung.

  • Gestrichelt mit dem in LineSymbolizer angegebenen Strich.

PolygonSymbolizer

  • Gestrichelt mit dem in PolygonSymbolizer angegebenen Strich.
  • Quadrat-Markersymbol wird mit Füllung und Umrisslinie unter Verwendung des in PolygonSymbolizer angegebenen Strichs ausgefüllt.

  • Das GraphicFill-Element wird nicht unterstützt.

PointSymbolizer

  • Einzelnes Markersymbol wird mit dem in PointSymbolizer angegebenen Symbol symbolisiert und am Mittelpunkt der Linie platziert.

  • Das Graphic-Element wird nicht unterstützt.

  • Einzelnes Markersymbol wird mit dem in PointSymbolizer angegebenen Symbol symbolisiert und am Polygon-Schwerpunkt platziert.

  • Das Graphic-Element wird nicht unterstützt.

Veröffentlichen von mehreren Styles mit SLDs

Sie können mehrere Styles für WMS-Layer mit SLD mithilfe des folgenden Workflows veröffentlichen:

  1. Erstellen Sie einen WMS-Service mit systemgenerierten Capabilities-Dateien.

  2. Erstellen Sie ein SLD-XML-Dokument, das mehrere Styles für jeden Layer im WMS-Service definiert.

  3. Binden Sie das SLD-XML an den WMS-Service.

Führen Sie zu diesem Zweck die folgenden Schritte aus:

In ArcGIS Server Manager:

  1. Veröffentlichen Sie einen WMS-Service anhand der Anweisungen, die unter WMS-Services hervorgehoben sind.

  2. Erstellen Sie ein XML-Dokument in SLD-Syntax, das zusätzliche Styles für jeden WMS-Layer definiert, den Sie veröffentlichen möchten. Sie können dieses SLD-XML-Dokument auf der lokalen Festplatte speichern oder es als URL zum Zugriff bereitstellen.

  3. Öffnen Sie Manager, und melden Sie sich an. Falls Sie Hilfe zu diesem Schritt benötigen, finden Sie weitere Informationen unter Anmelden bei Manager.

  4. Klicken Sie auf Services > Services verwalten.

  5. Suchen Sie den Service im Modul Services verwalten, und klicken Sie auf Bearbeiten . Wenn der Service nicht in der Liste angezeigt wird, befindet er sich möglicherweise in einem Unterordner des Ordners Site (Stammverzeichnis).

  6. Klicken Sie im Modul Bearbeiten auf Funktionen.

  7. Klicken Sie in der Liste der Funktionen auf WMS, und stellen Sie sicher, dass WMS ausgewählt ist.

  8. In der Liste WMS-Konfiguration wird das Textfeld SLD-Pfad oder -URL angezeigt. Geben Sie die URL des SLD-XML-Dokuments ein, oder suchen Sie das SLD-XML mithilfe des Datei-Browsers auf dem Datenträger.

  9. Klicken Sie auf Speichern und neu starten. Die Änderungen am Service werden sofort übernommen.

Anmerkungen:

Um sicherzustellen, dass das SLD-XML ordnungsgemäß an den WMS-Service gebunden ist, führen Sie einen der folgenden Schritte aus:

  • Geben Sie im Browser eine WMS GetCapabilities-Anforderung aus. In der XML-Antwort sollte es ein Element