17
UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit dem OpenGIS® Web Map Service (WMS) Protokoll sammeln können. Am Ende der Lektion wissen Sie, wie Sie mit dem Web-Browser, mit den bekannten GIS- Werkzeugen und durch Programmierung Karten und Informationen von einem Web Map Service abfragen können. 2. WMS im Desktop-GIS Das World Wide Web ist den Meisten nur vom Web-Browser her bekannt. Im Web-Browser werden irgendwelche Web-Adressen angewählt, worauf deren Inhalt angezeigt wird. Auch Karten lassen sich im Web-Browser darstellen. Natürlich ist das Hauptinteresse vieler WMS-Anbieter, einen schönen interaktiven Web-Client im Web-Browser präsentieren zu können. Doch was ist auf der anderen Seite, beim Web- oder Karten-Server. Lässt man bei einem Web Map Server den Web-Browser weg, dann bleibt ein Web-Dienst übrig. Die Essenz von WMS liegt also in den Services. Diese Services können z.B. sehr nutzbringend direkt in einem Desktop-GIS wie ArcView, Geomedia oder Map Info Professional verwendet werden. Alles läuft wie bisher über Internet ab, doch das Internet ist nicht mehr das WWW des Browsers, sondern reiner Transportmechanismus über das http-Protokoll. Der Client kann beliebig sein, z.B. ein bestehendes GIS, das auf Rasterkarten zugreift oder ein Workflow- System, das Aufgaben und Ressourcen im geografischen Raum zusammenbringen muss. Dazu können Sie selber einen Test mit der ArcView Software machen. In der Funktion „Add Data“ wählen Sie unter der Rubrik „GIS Servers“ die Option „Add WMS Server“. © Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 1 / 17

Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

  • Upload
    vohuong

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Lektion 6: Web Map Service (WMS) Praktikum

1. Ziele

Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit dem OpenGIS® Web Map Service (WMS) Protokoll sammeln können. Am Ende der Lektion wissen Sie, wie Sie mit dem Web-Browser, mit den bekannten GIS-Werkzeugen und durch Programmierung Karten und Informationen von einem Web Map Service abfragen können.

2. WMS im Desktop-GIS

Das World Wide Web ist den Meisten nur vom Web-Browser her bekannt. Im Web-Browser werden irgendwelche Web-Adressen angewählt, worauf deren Inhalt angezeigt wird. Auch Karten lassen sich im Web-Browser darstellen. Natürlich ist das Hauptinteresse vieler WMS-Anbieter, einen schönen interaktiven Web-Client im Web-Browser präsentieren zu können. Doch was ist auf der anderen Seite, beim Web- oder Karten-Server. Lässt man bei einem Web Map Server den Web-Browser weg, dann bleibt ein Web-Dienst übrig. Die Essenz von WMS liegt also in den Services. Diese Services können z.B. sehr nutzbringend direkt in einem Desktop-GIS wie ArcView, Geomedia oder Map Info Professional verwendet werden. Alles läuft wie bisher über Internet ab, doch das Internet ist nicht mehr das WWW des Browsers, sondern reiner Transportmechanismus über das http-Protokoll. Der Client kann beliebig sein, z.B. ein bestehendes GIS, das auf Rasterkarten zugreift oder ein Workflow-System, das Aufgaben und Ressourcen im geografischen Raum zusammenbringen muss. Dazu können Sie selber einen Test mit der ArcView Software machen. In der Funktion „Add Data“ wählen Sie unter der Rubrik „GIS Servers“ die Option „Add WMS Server“.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 1 / 17

Page 2: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 1: ArcView Add Data Funktion.

Im darauf folgenden Dialog (s. Abbildung 1) geben Sie als URL http://ims3.bkg.bund.de/bund/servlet/gtEntryPoint? ein. Mit dem Schaltknopf „Get Layers“ können Sie gleich prüfen, ob die Verbindung zum Server klappt und ob Ihr ArcView die Dienstebeschreibung, die sogenannten „Capabilities“ des angewählten Servers interpretieren kann. Sie sollten dann den Bildschirminhalt wie in Abbildung 2 erhalten. Falls dies nicht klappt, prüfen Sie bitte den Web-Dienst, indem Sie im Web-Browser in der Adresse folgende URL eingeben: http://ims3.bkg.bund.de/bund/servlet/gtEntryPoint?SERVICE=WMS&REQUEST=getCapabilities. Wenn Sie hier eine XML-Datei erhalten, welche den Dienst beschreibt, ist mit dem Web-Dienst alles in Ordnung. Andernfalls müssen sie für diese Übung einen anderen WMS-Dienst suchen (weitere Adressen finden sich unten im Text).

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 2 / 17

Page 3: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 2: ArcView Anzeige der WMS-Layer.

Danach können Sie mit den Daten des angewählten Servers arbeiten, als ob Sie lokale Raster-Layer zur Verfügung hätten (s. Abbildung 3).

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 3 / 17

Page 4: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 3: ArcView Anzeige der Kartendaten eines WMS-Dienstes.

Dies können Sie auch mit anderen WMS Servern ausprobieren. Eine Liste öffentlich verfügbarer WMS Server findet sich auf http://www.skylab-mobilesystems.com/ger/wms_serverlist.html. Oftmals muss an den publizierten Adressen noch etwas angepasst werden, damit der WMS Aufruf von ArcView korrekt funktioniert. Z.B. funktioniert der von geoland.at publizierte WMS-Link http://www.geoland.at/geolandWMS/service.aspx?Name=geoland_at_wms&Service=WMS&Version=1.1.1&Request=GetCapabilities in ArcView nicht, weil bereits der GetCapabilities-Aufruf darin enthalten ist. ArcView hängt bei der Layer-Abfrage den Befehl getCapabilities selber an die angegeben URL an. Gibt man in ArcView jedoch nur http://www.geoland.at/geolandWMS/service.aspx?Name=geoland_at_wms ein, dann funktioniert es dann (s. Abbildung 4).

Jeder Server verwendet in der Regel seine eigene Kartenprojektion, die von ArcView richtig interpretiert wird. Wenn Sie von einem Server zum nächsten wechseln, dann sollten Sie in jedem Fall die Projektion prüfen. Wenn die zwei Server keine übereinstimmenden Projektionen bereitstellen, dann kann nur der eine oder der andere, aber nicht beide dargestellt werden. Beim Wechsel vom deutschen Server auf den österreichischen kann z.B. das österreichische „MGI_Lambert_Austria“ ausgewählt werden. Damit funktioniert aber der deutsche Server nicht mehr. Die Liste der Projektionen, die ArcView beim Klicken auf irgendeinen Layer des WMS-Dienstes präsentiert, kommt aus den Capabilities des WMS-Dienstes. Wie Sie selber die Capabilities im Web-Browser abfragen, wurde oben bereits gezeigt. Schauen Sie doch bitte einmal diese Capabilities-Beschreibung genauer an. Sie werden sicher die Beschreibung der Kartenprojektion finden.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 4 / 17

Page 5: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 4: WMS von Geoland.AT im Arc View.

Interessant in der Liste von Skylab ist z.B. der Tsunami Datenserver (http://www.mapsherpa.com/cgi-bin/wms_iodra), der sofort klar macht, wieso Interoperabilität im Ernstfall entscheidend besser ist, als Datenaustausch auf Dateibasis: Die Daten sind immer aktuell und es wird keine Zeit für die manuelle Datenintegration benötigt.

Zum Abschluss dieser Tests sei noch auf http://maps.webs.idu.de/wms.ogc.iws hingewiesen. Dieser sehr schön gestaltete Stadtplan der Stadt Bautzen demonstriert eindrücklich, wie auch kleinere Firmen ihre Produkte gut positionieren können, wenn sie sich an den Standard eines Web-Dienstes halten. Hier funktioniert sogar die interaktive Kartenabfrage mit ArcView. Dazu wählen Sie den "Info-Knopf" und klicken auf irgendein Objekt auf der Karte. Nun sollte in einem neuen Fenster die Beschreibung des Objekts erscheinen (siehe Abbildung 5). Auf Seiten des Servers steht hinter dieser Abfrage die WMS-Funktion getFeatureInfo.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 5 / 17

Page 6: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 5: ArcView Anzeige der FeatureInfo des WMS-Dienstes der Stadt Bautzen.

3. WMS im Earth Viewer

Seit 2005 sind Earth Viewer wie Google Earth, Google Maps und Microsofts Virtual Earth Plattform die Stars des Internet. Ihnen wird nachgesagt, dass sie die Türen zu einem web-basierten räumlichen Informationsmanagement öffnen. Earth Viewer sind im weitesten Sinne computerbasierte Systeme, die dem Nutzer ermöglichen räumliche Informationen zu visualisieren. In einem engeren Sinne unterstützen Earth Viewer einen web-basierten Zugriff auf die angebotenen Daten und sind kostenfrei. In einer Basisversion dienen Sie mindestens mit einer globalen Flächenabdeckung in einem bestimmten Maßstab. Die Nutzung der Systeme sollte in keiner Weise eingeschränkt sein und sie können entweder browser-basiert oder client-basiert (d.h. der Download und die Installation einer Software sind nötig) sein. Google Earth, Microsoft Virtual Earth und Nasa World Wind sind Earth Viewer, werden aber meist auch als “Digital Globes” bezeichnet. Ihre Gemeinsamkeit ist der digitale Globus als Benutzerschnittstelle.

WMS Dienste sind in erster Linie zur Visualisierung von Geoinformation gedacht – wieso also nicht einen Earth Viewer als Visualisierungsplattform für Web-Mapping-Dienste nutzen? Google Earth bietet für die Einbindung eines WMS-Dienstes eine einfache Benutzerschnittstelle, die allerdings etwas versteckt ist. Nur eine Kleinigkeit sollte man beachten. Google Earth nutzt für die Projektion das globale geodätische System WGS84 und kann deshalb nur WMS-Dienste erfolgreich einbinden die WGS84 anbieten.

Ein WMS-Dienst der seine Karten in WGS84 zur Verfügung stellt wird vom Digitalen Oberösterreichischen Raum-Informations-Systems (DORIS) angeboten. Möchten Sie Informationen von diesem Dienst in Google Earth darstellen,

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 6 / 17

Page 7: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

gehen Sie wie folgt vor:

• Öffnen Sie Google Earth, suchen Sie das Salzburger Land und „fliegen“ Sie dorthin

• Fügen Sie nun ein neues Bildoverlay ein („Hinzufügen“ „Bild-Overlay…“)

• Im Dialogfeld „Bild-Overlay“ gibt es einen Reiter „Aktualisieren“. Hier versteckt sich ein Button „WMS-Parameter“, der die Einbindung eines WMS-Dienstes ermöglicht.

Abbildung 6: Die Dialogbox zur Anbindung eines WMS Dienstes in Google Earth

• Fügen Sie den WMS-Dienst http://doris.ooe.gv.at/wmsconnector/com.esri.wms.Esrimap? hinzu. Beachten Sie auch hier, dass Google Earth den GetCapabilities Aufruf selbstständig ausführt und der WMS-Link daher ohne diesen Aufruf eingefügt werden sollte

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 7 / 17

Page 8: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

• Wählen Sie nun die Ebene „Relief“ an, fügen Sie sie hinzu und bestätigen Sie. Nun sollte sie folgendes Bild erhalten:

Abbildung 7:Bild-Overlay aus dem WMS-Dienst des Digitalen Oberösterreichischen Raum-Informations-Systems (DORIS)

Das Zoom ins Salzburger Land ist wichtig, weil Google Earth den momentanen Bildausschnitt als Bounding Box für die WMS Anfrage benutzt. Die Einbindung von WMS-Diensten in Google Earth ist zwar sehr einfach, aber leider ist die Steuerung der anzuzeigenden Layer (wie das in ArcGIS möglich ist) etwas umständlich. Eine Lösung hierfür kann ein sogenanntes Reflektor-Skript sein. Dieses Reflektor Skript (etwa ein PHP-Skript) wird als Netzwerk-Link in Google Earth eingebunden, steuert den WMS-Dienst und liefert Kartenabbildungen dynamisch an Google Earth. Es vermittelt also zwischen WMS-Dienst und Google Earth und könnte über ein Browserfenster den WMS-Dienst steuern.

4. Baukoordination zum Nulltarif

Stellen Sie sich vor, sie möchten für Ihre Stadt einen Baukoordinationsdienst anbieten. Alle Werke und andere Bauträger, welche im öffentlichen Raum bauen möchten, können ihr Bauvorhaben auf einer Karte eintragen, so dass sofort bekannt wird, wenn zwei Baustellen am gleichen Ort geplant sind. Was es dazu braucht, ist ein einfaches GIS-Werkzeug zum Erfassen der Bauvorhaben sowie ein gemeinsamer Hintergrundplan, so dass alle Beteiligten die gleiche geografische Referenz verwenden können.

Wird ein detaillierter Web Map Service auf Ebene der amtlichen Vermessung angeboten, kann mit einem entsprechenden Open Source GIS eine präzise Geodatenerfassung eingerichtet werden wie sie z.B. für die Beschreibung von Bauvorhaben benötigt wird. Voraussetzung ist, dass der WMS die Gebiete

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 8 / 17

Page 9: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

abdeckt, in denen die Geodaten erfasst werden sollen.

Als Beispiel möchten wir den sehr umfangreichen Geoviewer der GIS-Fachstelle des Kantons Basel-Landschaft benutzen. Die Adresse für den interaktiven Visualisierungsdienst ist http://www.geo.bl.ch/.

Als Open Source GIS setzen wir Quantum GIS oder QGIS ein. QGIS kann von der Webseite http://qgis.org/ heruntergeladen werden. Die nachfolgenden Anweisungen beziehen sich auf die Version 0.9.0 vom 26. Oktober 2007, sind aber mit der aktuellern 1.0-Version problemlos nachvollziehbar.

• Einstellen der Projektion: Nach dem Start von QGIS wird eine weisse Kartenfläche angezeigt. Ein neues Projekt ohne Namen ist geöffnet. Da der Web Map Server von Basel-Landschaft mehrere Projektionen unterstützt, sollten wir vor dem Öffnen des WMS die gewünschte Zielprojektion für die Bauvorhaben einstellen. Dies erfolgt in Menu „Einstellungen-Projekt Einstellungen“. Im Reiter „Projektion“ wählen wir die Schweizer Projektion von 1903/LV03. Danach sicher wir das Projekt unter einem neuen Namen, z.B. „Baukoordination_Baselland.qgs“, mit dem Befehl „Datei-Speichere Projekt“ gesichert.

Abbildung 8: Einstellung der Projektionsparameter für das aktuelle Projekt in QGIS.

• Einrichten des WMS-Zugriffs: Mit dem Menu „Ebene-WMS Ebene

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 9 / 17

Page 10: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

hinzufügen“, respektive durch Klick auf das WMS-Icon (Erdkugel mit Plus-Zeichen) können die Parameter für den WMS angegeben werden. Unter Serververbindungen wählen Sie „Neu“. Im folgenden Dialog tragen Sie als Name „Geoportal Basel-Landschaft“ und unter der URL „http://www.geo.bl.ch/parzis/g.navigator/servlet/g.navigator“ ein. Proxy-Einstellungen sind nur dann nötig, wenn Ihre Organisation einen Proxy für den Zugang auf das Internet verwendet. Im Normalfall können diese Felder leer gelassen werden. Wählen Sie „OK“ um die Servereinstellungen zu speichern. Nun wählen Sie im ersten Dialog den Server aus der Liste aus und klicken auf „Verbinden“. Aus der danach erscheinenden Liste der Ebene wählen Sie je nach Vorlieben „map_2 – Grundkarte sw“ oder „map_3 – Grundkarte farbig“. Nach Auswahl des Layers erscheint unterhalb der Ebenenliste ein Vorschlag für die Projektion, i.d.R. „WGS84“. Da wir aber geodätische Koordinaten möchten, müssen Sie diesen Parameter verändern und wiederum die Projektion „CH1903/LV03“ einstellen. Mit dem Button „Hinzufügen“ wird der WMS angestossen und eine Karte erscheint im Kartenfenster. Mit einem Rechtsklick auf den Layer in der Legende erscheint das Layermenu, in dem Sie „Show in overview“ auswählen, um die Karte auch im Navigationsfenster zu haben. Obwohl eine Karte der ganzen Schweiz gezeigt wird, enthält der Server nur Daten für Basel-Landschaft. Daher ist auf das Gebiet im kleinen nordwestlichen „Zipfel“, also um die Koordinaten 610000/260000 zu zoomen(nicht den grossen „Zipfel“ nehmen, das wäre der Kanton Jura und Achtung, die Stadt Basel gehört auch nicht zum Gebiet, das mit der Amtlichen Vermessung von Basel-Landschaft abgedeckt ist). Nun empfiehlt es sich, das Projekt zu sichern (Menu „Datei-Speichere Projekt“).

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 10 / 17

Page 11: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 9: Einrichtung des Web Map Service in QGIS.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 11 / 17

Page 12: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Abbildung 10: Kartenansicht des WMS des Geoportals Basel-Landschaft in QGIS. Als Arbeitsgebiet im grossen Massstab kann z.B. auf Allschwil gezoomt werden, jedoch nicht auf die Stadt Basel, da dort keine detaillierten Karten vorhanden sind.

• Anlegen des Vektorlayers für die eigenen Geodaten: Wählen Sie das Menu „Ebene-Neue Vektoreben“, um einen neuen Polygonlayer anzulegen. Fügen Sie die benötigten Attribute gemäss der nachfolgenden Abbildung hinzu und bestätigen Sie mit „OK“.

Abbildung 11: Anlagen eines eigenen Vektorlayers.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 12 / 17

Page 13: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

• Erfassen von Bauvorhaben: Zoomen Sie auf dem Kartenfenster genügend nahe heran, um bequem ein Bauvorhaben einzufügen. Mit einem Rechtsklick auf den neu erstellten Layer in der Legende erscheint das Kontextmenu, aus dem „toggle editing“ zu wählen ist, um den Editiermodus einzustellen. Nun wählen Sie das Icon „Polygon digitalisieren“ aus der Werkzeugleiste (roter Farbstift mit schwarzem Kreis). Nun kann das Polygon auf der Karte erfasst werden: mit Linksklick wird ein neuer Stützpunkt angelegt, mit Rechtsklick auf dem letzten Stützpunkt wird das Polygon abgeschlossen. Danach müssen die Attribute eingegeben werden und schon ist ein eigener georeferenzierter Datensatz angelegt. Es können jetzt beliebig weitere Daten erfasst werden. Mit dem Kontextmenu „toggle editing“ wird die Editiersession abgschlossen, wobei die Sicherung der Daten noch bestätigt werden muss.

Abbildung 12: Erfassung eines eigenen Vektorlayers „Baukoordination“ in QGIS auf der Basis von WMS-Hintergrundkarten.

Dieses praktische Beispiel zeigt, wie einfach es dank der Standardisierung ist,

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 13 / 17

Page 14: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

Geodaten aus verschiedenen Quellen in seinen eigenen Datenerfassungs-projekten zu verwenden. Durch öffentliche Web Map Services und die Open Source Software werden die Kosten für eigene GIS-Projekte minimal. So kann der ornithologische Verein Vogelbeobachtungen erfassen oder das Schulprojekt der Sekundarstufe kann eine Karte der Freizeiträume für Jugendliche erstellen. Auch die Beschreibung von Routen wird zum Kinderspiel: Open Source GIS mit WMS öffnen, Fahrradroute einzeichnen, exportieren, ins GPS-Navigationsgerät überspielen und losradeln. GIS und Geodaten für alle werden Realität und die Flut an neuen Geodaten ist nicht abzuschätzen.

5. Java-Experiment: Wie kriege ich ein Kartenbild?

Die manuelle Eingabe von WMS-URLs ist ein wenig primitiv und mit den Resultaten kann nicht sehr viel gemacht werden. Viel besser ist es, wenn ein Programm zur Verfügung steht, das genau die Karten und Informationen holt und in der Form bereitstellt, die gerade benötigt wird. Vielleicht möchten Sie die Karte nicht einfach im Browser anzeigen, sondern als Grafikdatei speichern und in einem Grafikprogramm weiterverwenden. Mit einem kleinen Java-Programm von weniger als 80 Zeilen können Sie selber den WMS-Dienst aufrufen, sich eine Karte holen und diese als JPEG-Datei abspeichern.

Dieses Experiment ist optional. Es lohnt sich trotzdem, wenigstens den Beispielcode zu lesen und versuchen zu verstehen. Wer noch nie etwas mit Java gemacht hat und die Sache selber ausprobieren möchte, sollte wie folgt vorgehen:

• Herunterladen und installieren der Java-Entwicklungsversion. Auf http://developers.sun.com/downloads/ unter „Java SE“ „Java SE (JDK) 6)“ auswählen und den Anweisungen zum Download und zur Installation folgen.

• Herunterladen und installieren der freien Java Entwicklungsumgebung Eclipse. Auf http://www.eclipse.org/downloads/ die Zip-Datei von Eclipse im Link „Eclipse IDE for Java Developers (85 MB)“ auswählen, herunterladen und lokal abspeichern. Zur Installation genügt es, die Datei zu entzippen. Dabei ist darauf zu achten, dass die Pfadnamen in der Zip-Datei erhalten bleiben. Eclipse startet aus dem entzippten Ordner Eclipse mit Eclipse\eclipse.exe. In gewissen Fällen funktioniert dies nicht auf Anhieb, dann hilft ein Doppelklick auf Eclipse\startup.jar. Eclipse startet mit einem Hilfsbildschirm mit verschiedenen Einführungsoptionen inkl. Tutorial. Man kann aber auch gleich auf den Workbench gehen (Link oben rechts).

• Die Verwendung von Eclipse ist sehr gut beschrieben im online verfügbaren Buch von Christian Ullenboom „Java ist auch eine Insel“, zu finden unter http://www.galileocomputing.de/openbook/javainsel7/. Siehe Kapitel 1.7 – 1.9, für Informationen zur Java SE Installation siehe auch Kapitel 1.5. Das Buch kann auch als Ganzes von der Webseite http://download.galileo-press.de/openbook/javainsel7/galileocomputing_javainsel7.zip heruntergeladen werden.

• Wer es richtig wissen will, findet das wohl beste deutschsprachige Java-Werk von Guido Krüger „Handbuch der Java-Programmierung“ zum Download unter http://www.javabuch.de/download.html. Man kann sich

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 14 / 17

Page 15: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

die Bücher natürlich auch kaufen, was ich selber gemacht habe. Wie will man sonst zeigen, dass man was im Kasten hat, als mit dicken Schunken im Büchergestell?

Nun haben wir also gut 250 MB heruntergeladen, um unser kleines Programm laufen zu lassen. Aber der Appetit kommt schließlich beim Essen und wenn die Sache erst einmal installiert ist, ist bei Neugierigen die Schwelle für weitere Experimente bereits überschritten. Hier folgt nun der Java-Code, den Sie in ein eigenes Java-Projekt kopieren können. Legen Sie dazu ein Projekt für eine Java-Applikation an, nicht für ein Java-Applet.

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

/**

* @author Martin Huber

* WMS_Image Programm

* Ruft einen WMS-Server auf und schreibt das Kartenbild in eine JPEG-Datei.

* Aufruf mit 3 Parametern: Server-Adresse, WMS-Aufruf (ab und inkl. 1. /), Dateiname

*/

public class WMS_Image {

/**

* @param args Kommandozeilenargumente

*/

public static void main(String[] args) {

if (args.length != 3) {

System.err.println("Aufruf: java WMS_Image <Host> <Web_file> <Image_file>");

System.exit(1);

}

try {

Socket sock = new Socket(args[0], 80); // Eröffnen der Verbindung zum Host auf Port 80

OutputStream out = sock.getOutputStream(); // Datenkanal zum Server eröffnen

InputStream in = sock.getInputStream(); // Datenkanal zum Client eröffnen

FileOutputStream fw = new FileOutputStream(args[2]); // Bildddatei erstellen

String s = "GET " + args[1] + " HTTP/1.0" + "\r\n\r\n"; // GET-Befehl vorbereiten

out.write(s.getBytes()); // GET-Befehl senden

//Ausgabe lesen und anzeigen

// HTTP 1.0 sendet vor dem Bild noch einen Header.

// Diesen müssen wir abschneiden, bevor wir die Bilddatei schreiben.

int len;

boolean headerRead = false;

byte[] b = new byte[500];

while ((len = in.read(b)) != -1) {

if (!headerRead) { // wir haben den Header noch nicht gelesen

String header = new String(b); // String erstellen,

// in dem wir das Schlüsselwort vor den Bild suchen können

int contentTypePosition = header.indexOf("Content-Type: image/jpeg");

// Achtung: wenn der Buffer zu klein gewählt wird, besteht die Gefahr,

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 15 / 17

Page 16: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

// dass dieser Text zerschnitten wird und nie gefunden wird.

// in einem seriösen Programm müsste der Header gelesen und interpretiert werden.

// Wir schneiden ihn einfach ab.

if (contentTypePosition < 0) { // Schlüsselwort nicht gefunden

System.out.write(b, 0, len); // Ausgabe auf die Konsole

} else { // Schlüselwort gefunden

headerRead = true;

System.out.write(b, 0, contentTypePosition+28);

// schreibe den Rest des Headers auf Konsole

// die Zahl 28 ergibt sich aus der

// Länge des Schlüsselworts + 4 für die 2 CRLF, die HTTP

// am Ende des Headers schickt

fw.write(b, contentTypePosition+28, len-contentTypePosition-28);

// schreiben ab dem ersten Bild-Byte

}

} else { // Header wurde bereits gelesen

fw.write(b, 0, len); // einfach in die Bild-Datei schreiben

}

}

//Programm beenden

in.close();

out.close();

sock.close();

fw.close();

} catch (IOException e) { // Ausnahmebehandlung

System.err.println(e.toString());

System.exit(1);

}

}

}

Um jetzt das Bild der Bodenkarte aus Server des Geoportals Bund zu holen und in die Datei test.jpg abzuspeichern, erfolgt der Aufruf folgendermaßen:

java WMS_Image <URL mit getMap Aufruf> <Dateiname>

Also am Beispiel des Geoportals Bund:

java WMS_Image ims3.bkg.bund.de /bund/servlet/gtEntryPoint?GINTEGRATOR_SESSION_ID=2&SERVICE=WMS&WIDTH=750&HEIGHT=550&FORMAT=image/jpeg&BBOX=3414500.5,5224826.7,3609700.5,5367973.3&SRS=EPSG:31467&LAYERS=layer_508&STYLES=style_layer_508&REQUEST=GetMap&VERSION=1.1.1 test.jpg

Es wäre jetzt interessant, die Parameter des Aufrufs durch das Programm berechnen zu lassen, aber dies überlasse ich gerne den experimentierfreudigen Studentinnen und Studenten. Wer wirklich Spaß hat, holt sich die ganze Karte von Deutschland in hoher Auflösung und schreibt die World-Files für die georeferenzierte Einbindung in ArcView oder die TAB-Files für die gleiche Aufgabe mit Map Info.

6. Zusammenfassung

Anhand des Web Map Service (WMS) wurde die Struktur eines OpenGIS® Standards vorgeführt. WMS kennt folgende Aufrufe

• getCapabilities

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 16 / 17

Page 17: Lektion 6: Web Map Service (WMS) Praktikum - Condesys · Lektion 6: Web Map Service (WMS) Praktikum 1. Ziele Dies ist eine optionale Lektion, in der Sie praktische Erfahrungen mit

UNGIS Modul “OpenGIS® und verteilte Geoinformationsverarbeitung” Autor: Dr. Martin Huber Lektion 6: Web Map Service (WMS) Praktikum

• getMap

• getFeatureInfo

Diese werden von modernen GIS-Softwareprogrammen inkl. der Open Source Werkzeuge im sinnvollen Kontext automatisch ausgeführt. Die Konfiguration besteht in der Regel nur aus der Angabe der URL für den WMS-Dienst.

Mit einem Java-Experiment wurde gezeigt, wie WMS in modernen Programmiersprachen genutzt werden kann.

Dieses Praktikum hat aufgezeigt, wie viel einfacher es ist, Karten Dritter über einen Web-Dienst zu nutzen, als die Grundlagendaten bei den Erstellern in irgendeinem Dateiformat zu holen und dann selber in seinem GIS einzulesen und darzustellen.

© Copyright 2005 – 2008, alle Rechte vorbehalten 15.11.2008 17 / 17