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.
Der WMS Server wird in folgenden Teilschritten installiert:
![]() | |
Ab GeoShop Version 2.8 muss man nur
|
GEOSHOP_DIR ist das
Root-Installationsverzeichnis des GeoShop.
Installation der Programmdateien (nur falls Dateien noch nicht vorhanden):
Kopieren Sie die Datei
WMSServer.jar nach
GEOSHOP_DIR\system\bin
Kopieren Sie die Dateien
capabilities.igs und
capabilties.tem nach
GEOSHOP_DIR\system\www\wms.
Anpassen von
GEOSHOP_DIR\\user\options\appserver.opt
(nur falls noch nicht vorhanden):
Fügen Sie folgenden neuen Einträge 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).
WMS Benutzer erzeugen (nur falls noch nicht vorhanden):
In der Datei
GEOSHOP_DIR\user\users\wms.usr muss folgendes
definiert werden:
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>
}
}
![]() | |
Unter Views muss man die Views eintragen, welche
man als WMS Dienst publizieren möchte (s.a. Kapitel
Konfiguration). Die |
Ergänzen in der Datei
GEOSHOP_DIR\user\services\services.srv
(nur falls Einträge nicht bereits vorhanden):
Machen Sie folgende Ergänzungen in der Datei
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
}
...
}
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).
Nach der Erfolgreichen Installation bzw. Aktivierung des WMS Server können Sie den WMS Dienst wie folgt Testen:
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.
Der Browser sollte darauf eine XML Datei anzeigen.
Falls der Browser die XML Datei nicht anzeigt, sollten
man in
GEOSHOP_DIR\data\logs\serverlogs\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 ?
In
GEOSHOP_DIR\user\options\appserver.opt
können Sie im Abschnitt WMSServer folgende
Optionen setzen:
USERBenutzername unter welchem der GeoShop die WMS
Bilder erzeugt (normalerweise wms).
Der Benutzer muss in \user\users vorhanden sein.
PASSWORDPasswort des GeoShop Benutzers. Das Passwort sollte man änderen. Dazu muss man das Passwort auch in \user\users\<wmsuser>.usr nachführen.
EXPAND_VIEWSON 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_QUERYABLEON oder OFF.
Definiert, ob beim Request
getCapabilities die Layer als
queryable für den Request
getFeatureInfo gesetzt werden sollen
oder nicht.
LAYERS_SCALEHINTOFF 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.
SRSKoordinatensytem 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. EPSG:21781. Ist
diese Option nicht unter WMSServer
definiert, so wird die gleichnamige Option unter dem
Abschnitt GeoShopServer
verwendet.
SRS_SHIFT_21781_2056Ein X/Y Shift zwischen den Koordinatensystemen EPSG:21781 (CH LV03) und EPSG:2056 (CH LV95). Erfolgt eine Transformation zwischen diesen zwei Koordinatensystemen über einen Shift, so wird dieser Wert des Shift verwendet. Bei Default ist der Shift 2000000/1000000.
GETCAPABILITIES_SCRIPTigs-Script für den WMS-Request
getCapabilties. z.B.
/wms/getCapabilities.igs . Mit dem
Script kann der Output des Requests konfiguriert
werden.
GETFEATUREINFO_SCRIPTigs-Script für den WMS-Request getFeatureInfo. z.B.
/wms/getFeatureInfo.igs . Mit dem
Script kann der Output des Requests konfiguriert
werden.
LOG_WMS_REQUESTSON oder OFF .
Detailliertes loggen der WMS Requests im GeoShop Logfile.
Empfohlen wird OFF .
IMAGE_SAVEON 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_LOGON 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_ANNOTATIONON|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_DIRAbsoluter 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 .
WMS_URLBasisadresse für den WMS Dienst (Default =
WMS). Mit OFF wird
der Dienst nicht registriert.
SWMS_URLBasisadresse für den SWMS Dienst (Default =
SWMS). Mit OFF wird
der Dienst nicht registriert
DPIBildschirmauflösung des WMS-Client in dpi (Dots per
Inch). Default: 96. Der Wert wird für
die Ermittlung des Massstabs in Zusammenhang mit den
GeoShop-View Parametern min_scale bzw.
max_scale verwendet.
In
GEOSHOP_DIR\user\options\appserver.opt
können weitere WMS-URL's definiert werden. Zum Beispiel mit
anderen Layers oder mit/ohne Annotations.
Dazu sind weitere WMSServer zu definieren
in der Form WMSServer<i>, wobei
i 2 bis 9 sein kann.
WMSServer {
:
}
WMSServer2 {
:
}
WMSServer3 {
:
}Wenn in einer Map die Option WMS_URL oder
SWMS_URL nicht gesetzt ist, erhält die URL für
den WMS Request die Form
http://.../WMS<i>?...
Beispiele:
WMSServer ergibt
http://.../WMS?... und
http://.../SWMS?...
WMSServer2 ergibt
http://.../WMS2?... und
http://.../SWMS2?...
WMSServer3 ergibt
http://.../WMS3?... und
http://.../SWMS3?...
Mit den Definitionen der Optionen
WMS_URL und SWMS_URL
können unterschiedliche WMS und/oder SWMS Dienste mit
unterschiedliche Layers - durch den User - zur Verfügung
gestellt werden.
! z.B. öffentlicher WMS http://.../WMS?... mit öffentlichen Layers
WMSServer {
USER STRING wms
:
WMS_URL STRING WMS
SWMS_URL STRING OFF
}
! z.B. öffentlicher WMS http://.../WMSABC?... mit öffentlichen Layers
! z.B. geschützer SWMS http://.../SWMSXYZ?... mit geschützen Layers je nach User
WMSServer2 {
USER STRING user_abc
:
WMS_URL STRING WMSABC
SWMS_URL STRING SWMSXYZ
}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 zusätzlich unter dem Hypertext Transfer Protocol Secure (HTTPS) betreiben. Die Kommunikation zwischen Client und GeoShop Server erfolgt dann verschlüsselt (s.a. GeoShop-Server Dokumentation zu HTTPS).
Als zusätzliches Sicherheitsmerkmal lassen sich die
Basisadressen für WMS und SWMS verschleiern. Dazu müssen die
Optionen WMSServer.WMS_URL bzw.
WMSServer.SWMS_URL wie folgt in appserver.opt
gesetzt werden:
MAP
WMSServer MAP
...
WMS_URL STRING <WMS-Basis URL>
SWMS_URL STRING <SWMS-Basis URL>
}
...
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