Allgemeines

Mittels einer Definition eines WMS-Layers können verschiedenste Attribute, die die Darstellung eines WMS-Layers beeinflussen, gesetzt werden.
Diese Attribute werden im Bereich "Überblick" genauer beschrieben.

Aufbau einer WMSLayerdefinition

Eine WMSLayerdefinition erfolgt in XML. Es empfiehlt sich folgende Deklaration:

<?xml version="1.0" encoding="UTF-8"?>
<WMSLayer xmlns="http://www.geograt.de/namespaces/gisx3/layerdefinition/1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</WMSLayer>

WMSLayerdefinitionen werden im Unterverzeichnis "definitions/layers/wms" abgelegt und müssen die Dateiendung ".xml" besitzen. Es gelten die allgemeinen Hinweise zur Benamung.

Überblick

Icon

Bei der Definition von WMS-Layern ist eine feste Reihenfolge für die Verwendung der Attribute vorgegeben. Diese Reihenfolge entspricht der Einträge in der nachfolgenden Übersichtstabelle.
Allerdings folgen die hier beschriebenen Attribute in der Reihenfolge erst nach den allgemeingültigen Attributen. 

AttributBeschreibungDatentypOptional
uri

Angabe der URl für der/die WMS-Layer.
Im Fall von passwortgeschützten WMS können die Authentifizierungsangaben in folgender Form in die URI eingebaut werden:
http://<nutzer>:<passwort>@mein.server.de/meinwms

Eine elegante Form die Anmeldeinformation vor Benutzern zu verstecken, finden Sie weiter unten im Dokument.

URINein
projectionOptionale Angabe eines EPSG Codes für die Abfrage des WMS Layer (Beispiel: EPSG:5650). Wenn nicht angegeben, wird GISX versuchen, den WMS in dem Koordinatensystem der Karte abzufragen (EPSG:3857, WGS84 Web Mercator).TextJa
gutter

Angabe, wieviel Meter über den Kachelbereich hinaus (Überlappung) der/die WMS-Layer geladen werden soll. Verhindert Darstellungsfehler.
Standardwert: 0

GanzzahlJa
preload

Angabe, wieviele Kacheln ausserhalb des aktuellen Sichtbereichs für der/die WMS-Layer geladen werden sollen.
Standardwert: 0

GanzzahlJa
version

Versionsangabe für der/die WMS-Layer.

TextNein
format

Formatangabe für der/die WMS-Layer. Beispiel: image/png

TextNein
transparent

Angabe, ob der/die WMS-Layer transparent sein soll.
Standardwert: false

true | falseJa
layers

Layername des WMS-Layers auf dem Server.

WMSLayerNein

Layers

Hat man sich für einen WMS-Layer entschieden, muss noch der passende Wert für das Attribut "layers" ermittelt werden. Dies kann direkt mit der "uri" des WMS-Layer bewerkstelligt werden, indem man die uri mit "?getCapabilities" erweitert.
Beispiel: http://www.wms.nrw.de/geobasis/wms_nw_alkis_grau?getCapabilities -> Dort nach dem Begriff "Layer" suchen. Der Wert des Tags "Name" ist der passende Wert für das Attribut "layers".

Gutter

Wie bei WMSLayer erwähnt sorgt gutter für eine Überlappung der Kacheln und kann so Darstellungsfehler verhindern. Bei bestimmten Daten, welche über WMS-Server zur Verfügung gestellt werden, ist es mögliche die grafische Ausprägung vom Client aus zu beeinflussen.

Wenn Punktförmige Objekte z.B. Kanaldeckel sich am Rand einer Kachel befinden und man für die Darstellung ein Symbol verwendet, welches dann über den Kachelrand hinaus ragt, wird dieses abgeschnitten.

In dieser Grafik wurden bereits die Unterteilungen für die nächsten Zoomstufen eingezeichnet.

Preload

Mit preload werden Kacheln außerhalb des sichtbaren Bereiches geladen um die Darstellung für's panen schneller zu laden. Hierfür werden z.B. eine Kacheln in jede Richtung zusätzlich geladen. Beim Zoomen führt das auch dazu, dass die Randbereich des neuen sichtbaren Ausschnittes verschwommen sind anstatt überhaupt nicht angezeigt zu werden. Um sich das ganze leichter vorzustellen ein kleines Beispiel:

   ABCDEFGH
1                        
2        
3        
4        
5        

Es wird angenommen, dass die Tabelle eine Ansammlung von Tiles ist und der rote Bereich (B2 - G4) bereits im Browser dargestellt wird. Wenn wir nun die Karte um eine Tile-Spalte nach rechts verschieben, so dass der Bereich B3 - H4 dargestellt wird, müssen die Kacheln H2 - H4 nicht erst geladen werden, da diese bereits beim Browser im Cache liegen.

WMS mit Benutzername und Passwort versteckt einbinden

Durch die Angabe von Benutzername und Passwort in der URI des WMS Layers werden diese Informationen direkt zum Client gesendet, können dort demnach gelesen werden.

Wenn Sie diese Informationen verstecken möchten, hilft die Einbindung als redirect.

Im Beispiel sehen Sie zunächst die Layerdefinition (z.B. in einer Karte) vorher:

Layerdefinition Vorher
			<layer>
				<wms>
					....
					<uri>http://user:password@securedWMS.de/service/someService</uri>
					...
					<layers>
						<layer>some-layer</layer>
					</layers>
				</wms>
			</layer>

Legen Sie zunächst eine Datei mit einem beliebigen Namen und der Endung .properties in <GISX3HOME>config/redirect an (Im Beispiel securedWMS.properties):

securedWMS.properties
# Some sort of test for redirecting services
userInfo=user:password
# The host
host=securedWMS.de
# The path
path=/service/someService

Anschließend ändern Sie die URI in der Layerdefinition:

Layerdefinition nachher
			<layer>
				<wms>
					....
					<uri>./restservice/redirect/securedWMS</uri>
					...
					<layers>
						<layer>some-layer</layer>
					</layers>
				</wms>
			</layer>

Beachten Sie bitte das der letzte Teil der URI mit dem Namen der oben angelegten .properties Datei übereinstimmen muss.

PDF Ausgabe

Icon

Beachten Sie bitte unser Troubleshooting Dokument, wenn ein WMS Dienst zwar im Client aber nicht im PDF angezeigt wird.

Attachments:

gutter.png (image/png)