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.op
t
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 \user\users vorhanden sein.
PASSWORD
Passwort des GeoShop Benutzers. Das Passwort sollte man änderen. Dazu muss man das Passwort auch in \user\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. EPSG:21781
. Ist
diese Option nicht unter WMSServer
definiert, so wird die gleichnamige Option unter dem
Abschnitt GeoShopServer
verwendet.
SRS_SHIFT_21781_2056
Ein 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_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
.
WMS_URL
Basisadresse für den WMS Dienst (Default =
WMS
). Mit OFF
wird
der Dienst nicht registriert.
SWMS_URL
Basisadresse für den SWMS Dienst (Default =
SWMS
). Mit OFF
wird
der Dienst nicht registriert
DPI
Bildschirmauflö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.op
t
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