2. GeoShop WMS Server

2.1. Überblick

Der GeoShop WMS Server als WMS Server ermöglicht das Publizieren von GeoShop Views.

2.2. Unterstützte WMS Features

Der GeoShop WMS Server unterstützt folgende WMS Requests gemäss WMS 1.1.0 Spezifikation:

  • getCapabilities.

  • getMap.

  • getFeatureInfo.

Ausserdem werden folgende Koordinatensysteme (SRS) unterstützt:

  • EPSG:21780: Liechtensteinisches Koordinatensystem.

  • EPSG:21781: Schweizer Koordinatensystem LV03.

Grundsätzlich ist es möglich, jedes Koordinatensystem zu benutzen in welchem die INTERLIS Dateien auf dem GeoShop Server gespeichert sind. Eine automatische Transformation zwischen den verschiedenen Koordinatensystemen ist jedoch nur zwischen den beiden oben genannten Koordinatensystemen möglich.

2.3. Installation

2.3.1. Installation des WMS Server

Der WMS Server wird in folgenden Teilschritten installiert:

[Anmerkung]

Ab GeoShop Version 2.8 muss man nur HOST_URL setzen und den WMS Dienst aktivieren.

  1. Installation der Programmdateien (nur falls Dateien noch nicht vorhanden):

    Kopieren Sie die Datei WMSServer.jar nach \server\modules.

    Kopieren Sie die Dateien capabilities.igs und capabilties.tem nach \server\www\wms.

  2. Anpassen von appserver.opt (nur falls noch nicht vorhanden):

    Fügen Sie folgenden neuen Einträge in \server\options\appserver.opt ein:

    MAP
       AppServer MAP
          ...
          HOST_URL STRING <GeoShop Basis URL>
          ...
       }
       ...
       WMSServer MAP
          USER STRING wms
          PASSWORD STRING wms
          EXPAND_VIEWS STRING OFF
          LAYERS_QUERYABLE STRING ON
          LAYERS_SCALEHINT STRING 1000x800
          SRS STRING EPSG:21781
          GETCAPABILITIES_SCRIPT STRING /wms/getCapabilities.igs
          GETFEATUREINFO_SCRIPT  STRING /wms/getFeatureInfo.igs
       }
       ...
    }

    Für <GeoShop Basis URL> muss man die Basis URL des GeoShop angeben (d.h. http://<host>:<port>, z.B. http://www.infogrips.ch:3501).

  3. WMS Benutzer erzeugen (nur falls noch nicht vorhanden):

    Unter \server\users müssen Sie die Datei wms.usr wie folgt definieren:

    USER
       name STRING wms
       password STRING wms
       privileges LIST
          STRING client
          STRING info
          STRING multi
       }
       views LIST
          STRING <view>
          ...
       }
       queries LIST
       }
       products LIST
       }
       preferences MAP
          range.minX REAL <minX>
          range.minY REAL <minY>
          range.maxX REAL <maxX>
          range.maxY REAL <maxY>
       }
    }

    [Anmerkung]

    Unter Views muss man die Views eintragen, welche man als WMS Dienst publizieren möchte (s.a. Kapitel Konfiguration). Die range.* Parameter werden für die Berechnung der max. geographischen Ausdehnung der publizierten Views benötigt.

  4. Ergänzen der Datei services.srv (nur falls Einträge nicht bereits vorhanden):

    Machen Sie folgende Ergänzungen in der Datei \user\services\services.srv:

    LIST
       ...
       MAP
          name STRING wms
          description STRING 'WMS Server'
          module STRING WMSServer
          server STRING appserver
       }
       ...
       MAP
          name STRING igs
          description STRING 'generic ig/script service'
          module STRING ICSServer
          server STRING appserver
       }
       ...
    }

  5. Aktivieren des WMS Server Moduls:

    Starten Sie den GeoShop Administrator und aktivieren Sie den wms bzw. igs Service unter Servers>Services. Danach sollten Sie den GeoShop Dienst frisch starten (ebenfalls via Administrator möglich).

2.3.2. Testen der Installation

Nach der Erfolgreichen Installation bzw. Aktivierung des WMS Server können Sie den WMS Dienst wie folgt Testen:

  1. Rufen Sie die URL

    http://localhost:3501/WMS?request=getcapabilities

    mit einem Internetbrowser (IE, Netscape oder Firefox) auf. Annahme: Der GeoShop läuft auf dem lokalen Rechner auf dem Port 3501.

  2. Der Browser sollte darauf eine XML Datei anzeigen.

    Falls der Browser die XML Datei nicht anzeigt, sollten man in appserver.log kontrollieren, ob folgender Abschnitt vorhanden ist:

    ...
    --------------------------------------
    module WMSServer 1.0c
    --------------------------------------
    testing environment ...
    USER is wms
    SRS is EPSG:21781
    --------------------------------------
    ...

    Falls dies nicht der Fall ist:

    • Haben Sie alle Dateien installiert ?

    • Haben Sie den Modul in appserver.opt und services.srv eingetragen (Achtung: Die Gross/Kleinschrift des Namen WMSServer ist wesentlich) ?

    • Ist der Benutzer wms.usr vorhanden ?

    • Haben Sie den WMS Dienst aktiviert und den GeoShop frisch gestartet ?

2.4. Konfiguration

2.4.1. Konfiguration von appserver.opt

In appserver.opt können Sie im Abschnitt WMSServer folgende Optionen setzen:

USER

Benutzername unter welchem der GeoShop die WMS Bilder erzeugt (normalerweise wms). Der Benutzer muss in \server\users vorhanden sein.

PASSWORD

Passwort des GeoShop Benutzers. Das Passwort sollte man änderen. Dazu muss man das Passwort auch in \server\users\<wmsuser>.usr nachführen.

EXPAND_VIEWS

ON oder OFF. Falls OFF (= Default) gesetzt ist, werden mit getCapabilities nur die Views als WMS Layer geliefert. Falls ON gesetzt ist, werden alle Layer der Views als WMS Layer mit getCapabilities geliefert.

LAYERS_QUERYABLE

ON oder OFF. Definiert, ob beim Request getCapabilities die Layer als queryable für den Request getFeatureInfo gesetzt werden sollen oder nicht.

LAYERS_SCALEHINT

OFF oder <pixelwidth>x<pixelheight>. Definiert, ob beim Request getCapabilities die Layers mit ScaleHint min/max versehen werden. Als Berechnungswert für ScaleHint muss mit dieser Option die mittlere Bildgrösse <pixelwidth>x<pixelheight> (Beispiel: 800x600) definiert werden, mit der der Request getMap Bilder bestellt. ScaleHint min/max definiert den Range über die Diagonale eines Pixels in Meter im Massstab 1:1. Über die Bildgrösse definiert durch die Option und den Ranges min_range/max_range in Quadratmeter der Layer in den Views des GeoShops wird diese Pixelgrösse berechnet.

SRS

Koordinatensytem des GeoShop Server. Das Koordinatensystem ist des Koordinatensystem in dem die INTERLIS Dateien auf dem Server abgelegt sind. Für die Schweiz gilt z.B. SRS:21781.

GETCAPABILITIES_SCRIPT

igs-Script für den WMS-Request getCapabilties. z.B. /wms/getCapabilities.igs . Mit dem Script kann der Output des Requests konfiguriert werden.

GETFEATUREINFO_SCRIPT

igs-Script für den WMS-Request getFeatureInfo. z.B. /wms/getFeatureInfo.igs . Mit dem Script kann der Output des Requests konfiguriert werden.

LOG_WMS_REQUESTS

ON oder OFF . Detailliertes loggen der WMS Requests im GeoShop Logfile. Empfohlen wird OFF .

IMAGE_SAVE

ON oder OFF . Sollen Images beim Request getMap auf dem GeoShop Server gespeichert werden. Default Speicherort ist GEOSHOP_DIR\data\images. Images erhalten Namen wms<#>.<ext> . Empfohlen wird OFF .

IMAGE_LOG

ON oder OFF . Soll ein kreiertes Image beim Request getMap im GeoShop Logfile protokolliert werden. Das Image wird mit folgendem Inhalt protokolliert (Beispiel):wms3.png 18.09.2008 16:20:46 .

IMAGE_ANNOTATION

ON|OFF|LOWER_RIGHT|LOWER_LEFT|UPPER_RIGHT|UPPER_LEFT . Soll im Image beim Request getMap eine Annotation geschrieben werden. Mit dem Wert OFF wird die Annotation nicht geschrieben. Mit dem Wert ON wird die Annotation unten rechts ins Bild geschrieben. Mit den anderen Werten kann die Position der Annotation im Bild bestimmt werden. Die Annotation enthält folgenden Inhalt (Beispiel) : wms3.png 18.09.2008 16:20:46 .

IMAGE_DIR

Absoluter oder relativer Pfad zu GEOSHOP_DIR\data zur Ablage der gespeicherten Images beim Request getMap. Hat nur Wirkung bei IMAGE_SAVE=ON . Default Speicherort ist GEOSHOP_DIR\data\images. Beispiel absoluter Pfad c:\wmsimages. Beispiel relativer Pfad \wmsimages für GEOSHOP_DIR\data\wmsimages .

IMAGE_MAXCOUNT

<Integer> oder OFF. Ein Integer-Wert bis zu welchem Wert eindeutige Images wms<#>.<ext> beim Request getMap gespeichert werden sollen. Beim Erreichen des Wertes wird wieder mit 0 angefangen, Beispiel IMAGE_MAXCOUNT=10 ergibt Images wms0.png .. wms10.png . Mit IMAGE_MAXCOUNT=OFF ist keine obere Grenze gesetzt. Hat nur Wirkung bei IMAGE_SAVE=ON .

2.4.2. Konfiguration von <wmsserver>.usr

In der Datei \users\<wmsserver>.usr kann definiert werden, welche Views der GeoShop per WMS publizieren soll. Die Views müssen auf dem GeoShop vorhanden sein.

2.5. Authentifizierung und Security

OGC WMS beinhaltet keine Authentifizierung, das heisst, alle publizierten WMS-Layer sind frei zugänglich. Um bestimmten Anwendern bestimmte Layer nur über eine Authentifizierung zugänglich zu machen, beinhaltet der GeoShop einen zusätzlichen Secure-WMS-Service SWMS.

Der GeoShop Secure-WMS-Service wird über die URL http://<geoshop-url</SWMS? angesprochen. Der GeoShop Secure-WMS-Service frägt über die http-Authentifizierung den Benutzer mit Password ab. Dieser Benutzer entspricht einem GeoShop Benutzer, in dem die gewünschten Layer für den Benutzer definiert werden.

Durch die Kombination des WMS-Service und des Secure-WMS-Service lassen sich so öffentliche und geschützte WMS-Layer publizieren.

Öffentliche WMS Layer unter WMS-Service http://<geoshop-url</WMS?

Auf diese WMS-Layer kann ohne Authentifizierung zugegriffen werden. Die WMS-Layer werden in einem GeoShop User definiert. Zum Beispiel wms.usr wie weiter oben beschrieben .

Geschützte WMS Layer unter Secure-WMS-Service http://<geoshop-url</SWMS?

Auf diese WMS-Layer kann nur mit einer Authentifizierung zugegriffen werden. Die WMS-Layer werden in GeoShop Users definiert. Zum Beispiel User wms_x.usr für die WMS-Layer A,B und wms_y.usr für die WMS-Layer C,D .

Bei Applikationen, in denen WMS-Layer integriert werden können, die aber die http-Authentifizierung nicht unterstützen, muss ein Proxy dazwischen geschaltet werden. Die Applikation bezieht die WMS-Layer über eine URL des Proxy. Der Proxy leitet den Request weiter zum GeoShop und übernimmt die Authentifizierung. Die Authentifizierung ist im Proxy konfiguriert. Der Proxy kann in einem Web-Server integriert sein oder ein separates Programm sein. Die Applikation kann so ohne eigene http-Authentifizierung auf die WMS-Layer zugreifen.

Der GeoShop lässt sich zudem unter dem Hypertext Transfer Protocol Secure https betreiben. Die Kommunikation zwischen Client und GeoShop Server erfolgt verschlüsselt. Siehe dazu mehr in der entsprechenden GeoShop Dokumentation.

2.6. Requests Beispiele

Folgendes sind Beispiele für die WMS Request.

  • getCapabilities.

    http://www.infogrips.ch/servlet/redirector/demo/WMS?REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1

  • getMap.

    http://www.infogrips.ch/servlet/redirector/demo/WMS?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1 &LAYERS=av&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE&SRS=EPSG:21781 &BBOX=675764,245364,675861,245435&WIDTH=730&HEIGHT=538

  • getFeatureInfo.

    http://www.infogrips.ch/servlet/redirector/demo/WMS?REQUEST=getFeatureInfo&SERVICE=WMS&VERSION=1.1.1 &QUERY_LAYERS=av&SRS=EPSG:21781&BBOX=675764,245364,675861,245435&WIDTH=730&HEIGHT=538&X=200&Y=200