WMS-Services
Die Web Map Service-(WMS-)Spezifikation des Open Geospatial Consortium, Inc. (OGC) ist eine internationale Spezifikation zur Bereitstellung und Verwendung dynamischer Karten im Web. Sie können mithilfe von ArcGIS Server einen WMS-Service erstellen. Zu diesem Zweck müssen Sie die WMS-Funktion für einen Karten- oder Image-Service aktivieren.
WMS-Services sind hilfreich, wenn Sie Ihre Karten über eine für verschiedene Plattformen und Clients offene, anerkannte Methode online verfügbar machen möchten. Jeder Client, der die WMS-Spezifikation unterstützt, kann Ihren Service anzeigen und mit ihm arbeiten. Bisher wurden vier Versionen der WMS-Spezifikation veröffentlicht. Die Versionen heißen v1.0.0, v1.1.0, v1.1.1 und v1.3.0 (aktuellste Version).
Client-Anwendungen arbeiten mit einem WMS-Service, indem sie Parameter an die URL des Service anhängen. WMS-Services, die mit ArcGIS Server veröffentlicht werden, unterstützen folgende Operationen:
- Anfordern von Metadaten zum Service (GetCapabilities)
- Anfordern eines Kartenbildes (GetMap)
- Anfordern von Informationen zu Features in der Karte (GetFeatureInfo [optional])
- Anfordern von benutzerdefinierten Styles (GetStyles)
- Anfordern von Legendensymbolen (GetLegendGraphic)
Es ist nicht erforderlich, dass ein WMS-Service alle Operationen unterstützt; er muss aber zumindest die GetCapabilities- und GetMap-Operationen unterstützen, um ein Basic-WMS zu sein, und er muss die optionale GetFeatureInfo-Operation unterstützen, um ein abfragbarer WMS zu sein. GetStyles als auch GetLegendGraphic sind nur in Styled-Layer-Deskriptoren (SLD) verfügbar.
Die von einem WMS-Service zurückgegebenen Karten sind nur Bilder (außer SVG). Sie enthalten keine tatsächlichen Daten. Um die Daten über OGC-Spezifikationen als Vektor-Features verfügbar zu machen, müssen Sie stattdessen einen WFS-Service verwenden. Um Daten als Raster-Layer bereitzustellen, veröffentlichen Sie einen WCS-Service. Sie können sowohl WFS- als auch WCS-Services mit ArcGIS Server veröffentlichen.
Auf der Open Geospatial Consortium-Website erfahren Sie mehr über WMS-Services. Auf der Webseite Interoperability and Standards von Esri erhalten Sie zudem Informationen zur Unterstützung der OGC-Services in ArcGIS.
Veröffentlichen eines WMS-Service in ArcGIS Server
Es gibt zwei Möglichkeiten für die Veröffentlichung eines WMS-Service mithilfe von ArcGIS Server:
- Sie können einen Karten-Service mit aktivierter WMS-Funktion veröffentlichen. Um einen Karten-Service zu veröffentlichen, müssen Sie zunächst ein Kartendokument erstellen.
- Sie können einen Image-Service mit aktivierter WMS-Funktion veröffentlichen. Um einen Image-Service zu veröffentlichen, ist entweder ein Raster-Dataset, ein Mosaik-Dataset oder eine Layer-Datei erforderlich, die auf ein Raster-Dataset oder ein Mosaik-Dataset verweist.
Sie können entweder ArcGIS Server Manager oder ArcCatalog zum Veröffentlichen des Service verwenden. Hilfe zu diesem Schritt finden Sie unter Veröffentlichen von GIS-Ressourcen auf dem Server.
Wenn Sie den Karten- oder Image-Service veröffentlichen, sollten Sie die WMS-Funktion aktivieren, indem Sie das Kontrollkästchen in der Liste "Funktionen" aktivieren.
Hinweise:
- Die Anzahl von Layern in der Karte wirkt sich direkt auf die Dauer aus, die dafür benötigt wird, den WMS-Service erstmalig zu erstellen oder ihn zu starten, nachdem er beendet wurde. Sie können diese die Startzeit möglicherweise verkürzen, indem Sie Layer im Service entfernen oder konsolidieren.
- WMS-Services nutzen einen Karten-Cache, sofern dieser verfügbar ist. Der Karten-Cache wird nur zum Anfordern der ursprünglichen Projektion, der Layer-Reihenfolge und der Layer-Sichtbarkeit des Service verwendet. Die gecachten Kacheln werden neu gesampelt, um dem vom Client angeforderten Maßstab zu entsprechen. Dieser Vorgang kann einige Verarbeitungszeit in Anspruch nehmen, und zu einer geringeren Bildqualität führen. Die Verwendung eines Cache ist vor allem dann von Vorteil, wenn der WMS-Service viele Layer oder eine komplexe Symbologie aufweist, die andernfalls nur mit viel Zeitaufwand dynamisch gezeichnet werde könnte. Wenn Sie nur wenige Layer und eine einfache Symbologie haben, erzielen Sie ohne Cache eine höhere Leistung.
- Wenn Sie einen WMS-Service aus einem bedarfsgesteuert gecachten Karten-Service anzeigen, werden im Cache Kacheln erstellt, wenn ein Benutzer zu einem bislang nicht gecachten Bereich navigiert.
- Nach der Veröffentlichung des Service können Sie auf der Registerkarte Funktionen im Dialogfeld Service-Eigenschaften weitere Eigenschaften für den WMS-Service festlegen.
Ein ausführliches exemplarische Erläuterung des Prozesses zur Erstellung eines WMS-Service finden Sie unter Lernprogramm: Veröffentlichen eines WMS-Service.
Konfigurieren der Eigenschaften des WMS-Service
Die Eigenschaften eines WMS-Service werden in seinen Capabilities-Dateien widergespiegelt, damit jeder Benutzer den Publisher des Service nachvollziehen kann. Wenn Sie einen WMS-Service mit vom System generierten Capabilities-Dateien (Standard) veröffentlichen, empfiehlt es sich, die WMS-Service-Eigenschaften abgesehen von "Name", "Titel" und "Online-Ressource" automatisch einzufügen. Die Service-Eigenschaften "Name" und "Titel" sind bei WMS bereits ausgefüllt, und der Name des Karten-Service oder des Image-Service sowie die Online-Ressource sind bereits in der URL des WMS-Service enthalten. In den meisten Fällen sollten Sie jene drei Eigenschaften nicht ändern.
Um WMS-Service-Eigenschaften zur übernehmen oder zu ändern, gehen Sie wie folgt vor:
- Beenden Sie den Parent-Karten- oder -Image-Service.
- Öffnen Sie die Service-Eigenschaften, und klicken Sie auf die Registerkarte Funktionen.
- Suchen Sie in der Liste der Funktionen WMS. Stellen Sie sicher, dass das Kontrollkästchen aktiviert ist, und klicken Sie auf den Text WMS (achten Sie darauf, das Kontrollkästchen nicht zu deaktivieren). Sie sehen, dass einige Eigenschaften angezeigt werden.
- Wählen Sie Service-Eigenschaften unten eingeben. Dies bedeutet, dass der Service eine vom System generierte Capabilities-Datei verwendet.
- Ändern Sie die Service-Eigenschaften entsprechend.
- Speichern Sie, und starten Sie den Parent-Karten- oder -Image-Service neu.
Das Feld Online-Ressource ist erforderlich, damit ein WMS-Client ordnungsgemäß mit dem WMS-Service kommuniziert. Normalerweise ist der zugehörige Wert eine URL, die im Feld Webzugriff auf der Registerkarte Funktionen angezeigt werden sollte.
Konfigurieren des SLD-Pfads oder der URL
Mit SLDs können Sie mehrere Styles für jeden WMS-Layer veröffentlichen. Wenn Sie eine SLD-Datei an den aktuellen WMS-Service binden, müssen Sie als Eigenschaft für die URL oder den SLD-Pfad die URL, den UNC-Pfad oder den physischen Speicherort einer SLD-XML-Datei festlegen. Weitere Informationen zum Arbeiten mit SLDs.
Der UNC-Pfad und der physische Speicherort müssen für das SOC-Konto für ArcGIS Server zugänglich sein, damit die SLD-XML-Datei ordnungsgemäß gelesen werden kann.
Konfigurieren des ListSupportedCRS-Parameter
Der ListSupportedCRS-Parameter kann zum Hinzufügen zusätzlicher Raumbezugssysteme (wie EPSG:4267) zu WMS-Services verwendet werden. Standardmäßig verzeichnen WMS-Services nur zwei Raumbezugssysteme: EPSG:4326 (oder CSR:84 für WMS 1.3.0) und den Raumbezug des Karten-Services, auf dem WMS aktiviert ist. Mithilfe des ListSupportedCRS-Parameter können Sie WMS-Clients mehr Reprojektionsoptionen anbieten, indem zusätzliche Raumbezüge spezifiziert werden.
Der ListSupportedCRS-Parameter wird bei der Konfiguration von WMS-Services in ArcCatalog oder ArcGIS Server Manager nicht als Service-Eigenschaft aufgeführt. Um den ListSupportedCRS-Parameter zu einem WMS-Service hinzuzufügen, müssen Sie die Service-Konfigurationsdatei (.cfg) des Karten-Services, auf dem Sie WMS aktivieren, bearbeiten.
Bearbeiten der Konfigurationsdatei:
- Beenden Sie den ArcGIS Server Object Manager-Prozess (SOM).
- Öffnen Sie die Service-Konfigurationsdatei (.cfg) für den Karten-Service in einem Texteditor.
- Suchen Sie nach dem zu WMS gehörigen Abschnitt.
- Fügen Sie den ListSupportedCRS-Parameter innerhalb des Elements <Eigenschaften> hinzu:
... <Extension> <TypeName>WMSServer</TypeName> <Enabled>true</Enabled> <Properties> <!-- other properties and metadata items --> <CustomGetCapabilities>false</CustomGetCapabilities> <ListSupportedCRS>EPSG:4267</ListSupportedCRS> </Properties> <Info> <WebEnabled>true</WebEnabled> <WebCapabilities></WebCapabilities> </Info> </Extension> ...
- Speichern Sie Ihre Änderungen und schließen Sie die Service-Konfigurationsdatei (.cfg).
- Starten Sie den ArcGIS Server Object Manager-Prozess (SOM) neu.
Um mehrere Raumbezugssysteme innerhalb des ListSupportedCRS-Parameters zu erfassen, trennen Sie die Raumbezugssysteme durch ein Komma (,). Beispiel:
<ListSupportedCRS>EPSG:4267,EPSG:4269,EPSG:102113</ListSupportedCRS>
Bei der Konfiguration des ListSupportedCRS-Parameters müssen Sie den EPSG-Namespace (z. B. EPSG) und die EPSG-ID (z. B. 4267) durch einen Doppelpunkt (:) getrennt angeben oder der Raumbezug wird vom Server ignoriert.
Sonderzeichen in Service-Eigenschaften
Die folgenden Zeichen dürfen in den Service-Eigenschaften nicht enthalten sein: &, <, >, ", '. Wenn Sie eines dieser Zeichen verwenden müssen, können Sie es durch die entsprechende Escape-Sequenz aus der folgenden Tabelle ersetzen:
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Darstellen von Layer-Namen
Beim Ändern der Service-Eigenschaften können Sie ein Kontrollkästchen aktivieren, mit dem Sie "Layer-Namen aus dem Kartendokument verwenden". In diesem Fall werden die Layer-Namen durch dieselben Zeichenfolgen dargestellt, die auch im Inhaltsverzeichnis des Kartendokuments verwendet werden. Wenn das Feld, wie standardmäßig vorgesehen, deaktiviert ist, werden die Layer mit nullbasierten Ganzzahlwerten dargestellt, die ihre Position im Inhaltsverzeichnis (von oben nach unten) darstellen.
Damit Layer-Namen aus dem Kartendokument verwendet werden können, müssen alle Layer-Namen in der Karte eindeutig sein. Die Layer-Namen dürfen keines der folgenden Zeichen enthalten: &, <, >, ", oder '.
Sichern von WMS-Services
Die Sicherheit für einen WMS-Service in ArcGIS Server wird dadurch verwaltet, dass die Sicherheit des ihm übergeordneten Karten- oder Image-Service gesteuert wird. Wenn einer bestimmten Rolle, z. B. einer Rolle mit der Bezeichnung "Planners", der Zugriff auf eine Karte verweigert wird, dann können Mitglieder der Rolle "Planners" nicht auf die Karte zuzugreifen, weder über SOAP oder REST (Representational State Transfer) noch über eine OGC-Schnittstelle (z. B. WMS). ArcGIS Server unterstützt eine Reihe unterschiedlicher Authentifizierungsschemas, beispielsweise die HTTP-basierte Authentifizierung (Basic und Digest), die integrierte Windows-Authentifizierung und die von ArcGIS Server verwaltete Token-basierte Authentifizierung.
HTTP-Authentifizierung und integrierte Windows-Authentifizierung
Services, auf die über WMS-Schnittstellen zugegriffen werden soll, sollten mit HTTP Basic, HTTP Digest oder der integrierten Windows-Authentifizierung gesichert werden. Die meisten WMS-Clients (sowohl Esri Clients als auch andere Clients) können diese weit verbreiteten Standardauthentifizierungsschemas erkennen und verarbeiten.
Von ArcGIS Server verwaltete Token-basierte Authentifizierung
Obwohl dies nicht empfohlen wird, kann ein WMS-Service nach wie vor mit der von ArcGIS Server verwalteten Token-basierten Authentifizierung gesichert werden, indem dieser Typ der Authentifizierung auf den entsprechenden Parent-Karten- oder -Image-Service angewendet wird. Um unverarbeitete Anforderungen an von einem Token geschützte WMS-Services zu stellen, können Sie aus dem Token-Service ein gültiges Token abrufen und die Token-Zeichenfolge als zusätzlichen Parameter an die Anforderungen anhängen, die Sie senden. Anforderungen an einen Token-gesicherten WMS-Service müssen demzufolge das folgende Format verwenden: http://<WMS-Service-URL>? <Standard-WMS-Parameter>&token=<gültige Token-Zeichenfolge>. Die meisten Desktop-WMS-Clients von Drittanbietern können keine Verbindungen zu WMS-Services herstellen, die auf diese Weise gesichert sind. Die Technik kann jedoch mit WMS-Clients verwendet werden, die mithilfe der ArcGIS-APIs für JavaScript, Flex und Silverlight erstellt wurden.
Verwenden von WMS-Services
Um eine Verbindung mit einem WMS-Service herzustellen, müssen Sie die URL kennen. Mit ArcGIS Server veröffentlichte WMS-Services weisen folgendes URL-Format auf:
http://<Web server machine name>/<ArcGIS Server instance name>/services/<folder name (if applicable)>/<service name>/<service type (can be MapServer or ImageServer)>/WMSServer?
Beachten Sie, dass die WMS-Funktion sowohl für Karten-Services als auch für Image-Services verfügbar ist. Aus diesem Grund gibt es zwei Optionen für den Service-Typ.
Wenn Sie beispielsweise einen Ordner namens "Japan" haben, in dem der Karten-Service "Tokyo" enthalten ist und der auf "myServer" unter dem Instanzennamen "arcgis" ausgeführt wird, so lautet die URL des WMS-Service wie folgt:
http://myServer/arcgis/services/Japan/Tokyo/MapServer/WMSServer?
Bei einem Image-Service namens "IdahoImages", der auf "myServer" unter dem Instanzennamen "PublicLands" ausgeführt wird, würde die URL für den WMS-Service wie folgt lauten:
http://myServer/PublicLands/services/IdahoImages/ImageServer/WMSServer?
Gängige WMS-Clients
Ein Webbrowser ist der einfachste Client für einen WMS-Service. WMS-Anforderungen können über HTTP gestellt werden, und die Antworten oder Ausnahmen werden durch den Browser zurückgegeben. WMS-Services unterstützen mehrere Operationen: GetCapabilities, GetMap, GetFeatureInfo, GetStyles und GetLegendGraphic. Durch URL-Parameter kann ein Client mithilfe dieser Operationen Service-Metadaten, Karten, Informationen zu Features, Symbologien und Legendensymbole aus dem WMS-Service abrufen. Diese Operationen und Parameter werden in den OGC-WMS-Spezifikationen aufgeführt.
Beispiele für Esri WMS-Clients: ArcGIS Desktop (ArcCatalog und ArcMap), ArcGIS Explorer, ArcGIS Server Web Application Developer Framework (ADF) für .NET, ArcGIS Server Web ADF für Java und Esri ArcGIS Server Geoportal Map Viewer.
Anzeigen von Legendeninformationen für einen WMS-Service
WMS-Services können so konfiguriert werden, dass Informationen zur Symbologie der Layer im Service zurückgegeben werden. Clients können mithilfe dieser Informationen eine Legende erstellen. Standardmäßig sind WMS-Services, die Sie mit ArcGIS Server veröffentlichen, so eingestellt, dass sie Legendeninformationen zurückgeben. Sie können dies über die Capabilities-Dateien des WMS-Service ändern.
Sowohl ArcMap als auch die Web Mapping-Anwendung, die Sie mit Manager erstellen, können Legendeninformationen für WMS-Layer anzeigen.
- Klicken Sie hierfür in ArcMap mit der rechten Maustaste auf den Layer, und wählen Sie "WMS-Legende zu Karte hinzufügen". Die Legendeninformationen werden auf der Karte angezeigt.
- In der Web Mapping-Anwendung können Sie Legendenmuster für einzelne Layer anzeigen, wenn Sie die Layer im Inhaltsverzeichnis erweitern.