Wege jenseits von Google Maps mit GeoTools und uDig

Vektor- vs. Rasterdaten

Die bisher beschriebene Funktionalität bezieht sich lediglich auf Vektordaten. GeoTools unterstützt Shapefiles, Web Feature Service (WFS), Geography Markup Language (GML) und – wie erwähnt – programmatisch speicherbasierte Layer. Rasterdaten wie georeferenzierte TIFFS, Web Map Service (WMS) oder Google Maps werden nur bedingt unterstützt. Unterstützung existiert insofern, als dass Schnittstellen bereitgestellt werden, die der Entwickler integrieren kann und die ihn – im Falle von WMS – mit einem gerenderten Bild nebst Angaben zur räumlichen Abdeckung desselbigen versorgen. Das Zusammenführen dieses Rasterbilds mit dem gerenderten Bild der (vektorbasierten) Layer muss manuell und somit mit AWT-Hausmitteln erfolgen. Häufig werden Rasterdaten als Hintergrundbild verwendet, um die dargestellten Vektordaten in einen Raumbezug zu setzen. Beim Herein- und Herauszoomen drohen aufgrund der Skalierung starke Verpixelungen, es sei denn die Datenquelle berücksichtigt dies (z.B. realisierbar durch einen WMS-Server).

Abb. 3: GeoTools-Beispielanwendung
GeoTools Beispiel

Abbildung 3 zeigt eine Swing-basierte Beispielanwendung. Integriert wurden drei schlichte Shapefiles für den Hintergrund sowie zwei speicherbasierte Layer mit Beispieldaten. Wie bereits ausgeführt, müssen Komponenten wie Layerlisten oder Tools zum Zoomen und Verschieben eigenständig programmiert werden. Günstigerweise wird jedoch mit org.geotools.gui.swing.JMapPane ein Beispiel für eine einfache Kartendarstellung nebst Toolbar geliefert. Die Koordinatenanzeige – gewonnen aus der Mausposition über der Karte – kann aus dem dargestellten Ausschnitt sowie dem genutzten Koordinatenreferenzsystem berechnet werden. Gleiches gilt für den Maßstab, doch ist er aufgrund von Verzerrungen, bedingt durch die gewählte Projektion, nur für einen Teil der Karte exakt stimmig.

Filter

Eher unauffällig, aber technisch interessant, ist der Tooltipp in Abbildung 3 bei dem Beispieldatensatz „Messstation MX22“. Die dargestellten Stationen weisen eine Punktgeometrie und somit keine räumliche Ausdehnung auf. Allein das Icon vermittelt den Eindruck einer Fläche. Um trotzdem einen Tooltipp erscheinen zu lassen, wird mit Filtern gearbeitet, die Features in einem bestimmten Abstand zum Cursor ermitteln. Dabei findet eine Rückrechnung von Bildschirmkoordinaten zu geografischen Koordinaten (Weltkoordinaten) statt.

Filter ermöglichen eine Vielzahl von GIS-Operationen, da mit ihnen Features anhand komplexer Ausdrücke selektiert werden können. Derartige Funktionalität ist in professionellen GIS-Anwendungen nicht wegzudenken: Sie ermöglichen z.B. in der Stadtplanung Gebiete mit hoher Lärmbelästigung durch umgebende Industrie oder Wohngebiete mit geringer ärztlicher Versorgung zu ermitteln. Das Nutzen dieser Funktionalität setzt natürlich ein gewisses Fachverständnis für die Materie voraus. Von Abstandsberechnungen über Schneidungsfunktionen zwischen zwei Objekten (inside, outside, contains etc.) und Einschränkungen anhand von Attributswerten usw. ist Vieles möglich. In Listing 2 wurden Filter für die attributsabhängige Darstellung verwendet.

UDIG

Aufbauend auf GeoTools wurde die eclipse RCP-(Rich-Client-Platform-)Anwendung User-friendly Desktop Internet Gis (uDig) entwickelt. Bestehend aus über 20 Plug-ins mit dutzenden Extension Points stellt es eine mächtige und vielseitige Anwendung dar, die um eigene Komponenten erweitert oder in die eigene Anwendung leicht integriert werden kann. Ausgangspunkt ist in jedem Fall das aktuelle SDK, bei dem die notwendigen Sourcen mitgeliefert werden. Zusätzlich benötigt man die Bibliotheken des Java Advanced Imaging (JAI).

Abb. 4: uDig-Kartenperspektive

In seiner Standardansicht (Kartenperspektive, Abb. 4) bietet uDig verschiedene Viewparts, die für das direkte GIS-orientierte Arbeiten von großem Nutzen sind. Dazu gehören:

  • die Auflistung der Projekte und Karten (Projekte)
  • der Layerstack (Layer) aller in der aktuell gewählten Karte vorhandenen Layer
  • der Layerinhalt (Auswahl), der alle Features des gewählten Layers tabellarisch auflistet
  • der Katalog aller bekannten Ressourcen

Hinzu kommen die sehr gut gelöste Integration von Raster- und Vektordaten sowie ein Transaktionsmanagement, das besonders bei der Anbindung an Datenbanken (z.B. Oracle mit Spatial-Option oder PostGIS) von Interesse ist. In der Toolbar bietet uDig neben Navigationswerkzeugen auch Werkzeuge zum Anlegen und Editieren von Features. Eigene Tools können über einen Extension Point hinzugefügt werden, ohne programmatisch in den bestehenden Code einzugreifen.  Hierzu bietet uDig ein Plug-in-Tutorial, in dem Schritt für Schritt ein Tool zur Entfernungsbestimmung erstellt wird. Ganz generell ist dieses Tutorial für RCP-Einsteiger gut geeignet, um Plug-ins und Extension Points kennen zu lernen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.