Entwicklung eines kartografischen Internet

Werbung
Entwicklung eines kartografischen
Internet-Mapservers
Bernhard Jenny,
Helen Freimark,
Andrea Terribilini
Institut für Kartographie
ETH Hönggerberg
8093 Zürich
[email protected]
[email protected]
[email protected]
Zusammenfassung
Zur Visualisierung von Karten und 3D-Objekten via Internet wird am Institut für
Kartographie der ETH Zürich ein verteiltes System entwickelt. Es sollen damit im
Rahmen des Projekts "Geowarn" kartografisch aufbereitete GIS-Daten sehr
unterschiedlicher Art visualisiert werden. Das Zielpublikum ist eine
zahlenmässig kleine Gruppe von Naturwissenschaftlern verschiedenster
Gebiete. Während der Evaluationsphase des Projekts wurden auf dem Internet
basierende Technologien zur Visualisierung von Karten, zur Programmierung
von interaktiven Benutzeroberflächen sowie zur dynamischen serverbasierten
Ableitung von Karten aus Datenbanken untersucht.
In einer ersten Phase wurden folgende potentielle Lösungen für die ClientArchitektur evaluiert: Macromedia Flash (swf), SVG (Scalable Vector Graphics)
und Java 2D für zweidimensionale Karten sowie VRML für 3D-Objekte. Alle
genannten Technologien wurden mit HTML kombiniert.
Flash und SVG eignen sich zur Visualisierung von Karten, wenn keine
komplexen Bedienoberflächen oder Analysen nötig sind. Mit Java 2D lassen sich
auch komplexe Umgebungen programmieren, Java erfordert aber im Vergleich
zu Flash und SVG vertiefte Programmierkenntnisse. VRML scheint nachwievor
die einzige plattformunabhängige Möglichkeit zu sein, dreidimensionale
Objekte im Internet zu visualisieren.
Einleitung
Am Projekt "Geowarn" (www.geowarn.org) sind acht Universitäten und
Hochschulen beteiligt. Die verschiedenen Partner untersuchen die griechische
Vulkaninsel Nisyros in der östlichen Ägäis mit geochemischen,
geophysikalischen und geodätischen Messungen. Es soll ein Frühwarnsystem
für den geotektonisch aktiven Vulkan entwickelt werden. Die gesammelten
Daten stammen unter anderem aus Messungen von Gasaustritten im Krater,
bathymetrischen Messungen zur Identifizierung von geotektonischen Brüchen,
differential GPS zur Messung von relativen Krustenbewegungen oder aus
seismisch-tomografischen Untersuchungen mittels Seismographen. Die
beteiligten Wissenschaftler sind ausgewiesene Experten auf ihrem Fachgebiet.
Die Kommunikation mit den Projektpartnern wird jedoch durch zwei Umstände
erschwert: Zum einen sind die verschiedenen Forschungslabors geografisch
weit voneinander entfernt; zum andern verfügen die Beteiligten nicht alle über
die notwendige Erfahrung im Umgang mit Geografischen Informationssystemen. Zur Lösung dieser Probleme soll eine auf dem Internet basierende
Software entwickelt werden, welche auf einfache Weise die Kombination und
Analyse der verschiedenen Datensätze erlaubt. Das Werkzeug soll es den
Wissenschaftlern ermöglichen, eventuelle Korrelationen zwischen
verschiedenen Messreihen und Datensätzen zu entdecken.
Anforderungen an die Funktionalität des Systems
Die verschiedenen zweidimensionalen Datensätze sollen sich nach Belieben
kombinieren lassen, und der Benutzer muss den Kartenausschnitt sowie den
Massstab wählen können. Zur Orientierung dienen alternativ eine topografische
Grundkarte oder ein Orthophoto.
Das System muss die Möglichkeit bieten, neue Messreihen in eine vorgegebene
Datenstruktur einzufügen sowie Datensätze zu ändern oder zu löschen. Die
Daten sind in Ebenen strukturiert und werden primär in Form von Karten
präsentiert. Es müssen ergänzend auch alternative Darstellungsformen, wie
Tabellen und Diagramme, zur Verfügung stehen. Einige Datentypen erfordern
spezielle Werkzeuge zur Analyse. Zum Beispiel müssen durch Höhenmodelle
beliebige Profile gelegt werden können oder seismisch-tomografische
Voxeldaten müssen sich als rotierbare Isoflächen betrachten lassen.
Die Daten erfordern eine kartografische Aufbereitung aus folgenden vier
Gründen:
1. Ziel jeder Karte ist die prägnante Vermittlung räumlicher Information. Ist eine
Karte grafisch gut gestaltet, kann der Leser deren Inhalt rasch und leicht
erfassen.
2. Der Leser behält Informationen länger in seinem Gedächtnis, wenn die Karte
gut gestaltet ist und verschiedene Medien (Bild, Ton, Text, Animation) zur
Wissensvermittlung eingesetzt werden (Dransch 1995).
3. Klar und effizient gestaltete Karten wecken Vertrauen in den Wahrheitsgehalt
der präsentierten Information (Harrower et al. 1997).
4. Die Missachtung kartografischer Darstellungsregeln kann zu
Fehlinterpretationen führen.
Die kartografische Bearbeitung beinhaltet eine dem Massstab entsprechende
Generalisierung, eine Harmonisierung der Geometrie zwischen den
verschiedenen Datensätzen sowie eine korrekte Symbolisierung (Farben,
Strichstärken, Transparenz, etc.).
Einzelne Kartenelemente oder Gruppen von Elementen müssen auf Ereignisse
("Events") reagieren können. Dazu zählen so genannte "Mouse-Over-Events"
oder "Mouse-Click-Events" mit denen Kartenobjekte zum Beispiel ein- und
ausgeblendet werden. Auch müssen Elemente dynamisch generiert und
geändert werden können.
Anforderungen an den Aufbau des Systems
Die Bereitstellung der Daten auf dem Server darf keine Programmierkenntnisse
erfordern, damit dieser Schritt von einem Kartografen ausgeführt werden kann.
Die Client-Software muss sehr leicht auf dem entsprechenden Computer
installierbar sein oder besser gar keine vom Benutzer gesteuerte Installation
erfordern. Die Umgebung sollte plattformunabhängig in einem Webbrowser
funktionieren können, damit Verknüpfungen mit anderen multimedialen
Inhalten möglich sind. Ausgeschlossen sind proprietären Lösungen von
kommerziellen GIS-Anbietern, damit eine gewisse Unabhängigkeit in der
Zukunft garantiert bleibt. Auch sollte das System günstig in der Anschaffung
sein.
Die einzelnen Kartenelement müssen ansprechbar bleiben und mit Interaktivität
versehen werden können. Dies schliesst rasterbasierte Karten aus und erfordert
vektorielle Daten. Damit der Kommunikationsaufwand zwischen Server und
Client auf ein Minimum reduziert werden kann, muss der Client über eine
gewisse minimale "Intelligenz" verfügen. Dies kann erreicht werden, wenn der
Client Attributdaten ausgewählter Kartenelemente zwischenspeichert und diese
auch selbstständig durchsuchen und unterschiedlich formatiert darstellen kann.
Von Vorteil ist eine strikte Trennung zwischen der Benutzeroberfläche (der
Schale), der Karte (dem Inhalt) und der Logik. Diese Trennung erleichtert die
angestrebte Arbeitsteilung zwischen dem Kartografen, der verantwortlich
zeichnet für den Inhalt und die Gestaltung der Karten; dem Layouter, welcher
die Benutzeroberfläche erstellt und dem Programmierer, welcher die Logik
programmiert.
Macromedia Flash
Das Flash-Format ist zurzeit das wohl am weitesten verbreitete Vektorformat
für das WWW. Flash-Dokumente können auch Animationen enthalten und dank
der Programmiersprache "ActionScript" sind auch komplexe Interaktionen
möglich. Webbrowser benötigen ein Plug-In zur Wiedergabe der Flash-Dateien,
welches meist von Macromedia stammt, dem Erfinder des Formats. Die
Spezifikation des Formats zusammen mit einem sogenannten Software
Development Kit (SDK) wurden von Macromedia offengelegt. Dies erlaubt auch
andern Programmierern Software zu entwickeln, welche Flash-Dateien
generieren kann. Wolter (2002) gibt einen Überblick zu verschiedenen FlashEditoren, mit denen Flash-Dateien erstellt werden können.
Der grosse Vorteil von Flash ist die weite Verbreitung des Plug-Ins. Macromedia
behauptet, dass mehr als 95 Prozent aller Internet-Nutzer Flash-Inhalte
betrachten können (www.macromedia.com/software/flash/survey). Meist wird
bei der Installation eines Webbrowsers auch Macromedias Flash-Plug-In
installiert. Der Benutzer muss sich normalerweise also nicht um die Installation
des ohnehin nur 220 Kilobyte grossen "Flash Players" kümmern. Der Flash
Player stellt Grafiken mit Antialiasing dar und unterstützt auch Bezier-Kurven.
Flash verwendet ein binäres Format; weshalb die Dateien nicht mit einem
Texteditor generiert oder bearbeitet werden können. Dadurch ist einiges an
Programmiererfahrung notwendig, um eine Applikation zu entwickeln, welche
auf einem Server Flash-Dateien erzeugen kann. Es gibt dazu allerdings verschiedene Opensource Projekte. Auch Macromedia bietet eine entsprechende
Lösung an ("Macromedia Generator"), die jedoch mehrere tausend Franken
teuer ist.
Zwar bietet die "ActionScript"-Sprache, welche JavaScript sehr ähnlich ist, viele
Möglichkeiten zur Animation oder Interaktion, die dynamische Generierung von
neuen Elementen im Flash-Dokument ist jedoch nicht möglich.
Abb. 1. Oben eine interaktive Karte zur Wahl von Profilen durch einen dreidimensionalen
Datensatz und unten das dynamisch generierte Profil.
Zur Evaluation wurde eine Karte der Vulkaninsel Nisyros mit Macromedias
"Flash 5" erstellt (Diplomarbeit von H. Freimark, Publikation in Bearbeitung). Die
Karte enthält die Möglichkeit, interaktiv die Position eines Profils durch einen
Voxel-Kubus von seismisch-tomografischen Daten zu legen. Die Position des
Profils wird an den Server geschickt, welcher ein Profil berechnet und diese als
Rasterbild zurücksendet. Es hat sich gezeigt, dass sich das relativ einfache
Bedienelement zur Wahl der Lage des Profils nur sehr umständlich
implementieren lässt.
Scalable Vector Graphics (SVG)
SVG ist ein auf XML (eXtensible Markup Language) basierendes Format, um
Vektorgrafiken zu beschreiben. Wie Flash wird auch SVG von einem Plug-In im
Browser dargestellt. SVG ist ein noch relativ junges Format, das erst im
September 2001 vom W3C (World Wide Web Consortium) verabschiedet wurde
(www.w3.org/TR/SVG/). Das W3C beabsichtigt mit SVG einen Standard zu
schaffen, der unabhängig von einzelnen Herstellern bleibt. Treibende Kraft
hinter SVG ist Adobe, es partizipieren jedoch viele weitere Firmen bei der
Ausarbeitung des Formats. Von Adobe stammt auch das zurzeit beste Plug-In
zur Darstellung von SVG, der sogenannte "Adobe SVG Viewer 3.0".
Da SVG auf XML basiert, sind SVG-Dokumente als Text kodiert. Dies bietet im
Vergleich zu Flash den Vorteil, dass Dateien mit jedem Texteditor bearbeitet
werden können. Auch die dynamische Generierung durch eine Serverapplikation
ist ungleich leichter programmierbar als dies bei Flash der Fall ist.
Die Darstellungsqualität des Adobe SVG Viewers ist gut. Einzig das Antialiasing
ist nicht immer perfekt. Die Elemente eines SVG-Dokuments sind in einem
Baum strukturiert (Document Object Model, DOM), der sich mit JavaScript oder
andern Programmiersprachen manipulieren lässt. Mit dieser Technik ist es
möglich, einzelne Kartenelemente zu animieren oder mit Interaktion zu
versehen. Einfachere Animationen oder Interaktionen lassen sich auch durch
spezielle SVG-Objekte beschreiben, welche dem SMIL-Standard entnommen
wurden. SMIL ist ebenfalls ein Standard vom W3C zur Beschreibung von
Animationen. Mit JavaScript hat der Programmierer sehr leicht Zugriff auf die
umgebende HTML-Seite. So ist es möglich, HTML-Formulare und SVG zu
kombinieren und zum Beispiel die SVG-Grafik den Eingaben in einem Formular
anzupassen.
Ein grosser Nachteil von SVG ist die momentan noch geringe Verbreitung. Das
Plug-In von Adobe ist leider sehr gross (2.2 Megabytes) und schreckt dadurch
sicher viele Interessenten von der Installation ab. Werden die SVG-Projekte sehr
umfangreich oder beinhalten sie komplexe Interaktionen, kann es für den
Programmierer schwierig werden, die Übersicht zu bewahren.
Abb. 2. Prototyp eines Systems zum Krisenmanagement, mit SVG und JavaScript. Daten:
Vector25 und DHM25 © L+T.
Zur Evaluation wurde ein Prototyp eines System zum Krisenmanagement im
Falle von Überschwemmungen für Locarno entwickelt. SVG wurde mit JavaScript
kombiniert, um die Kommunikation mit dem HTML-Dokment zu steuern. So
kann der Benutzer zum Beispiel eine Überschwemmung der Stadt simulieren,
indem er in einem HTML-Formular die Quote des Sees eingibt und diese per
JavaScript an die SVG-Grafik weitergibt. Auch wurde JavaScript verwendet um
SQL-ähnliche Funktionalitäten zu realisieren. Attributtabellen lassen sich damit
verknüpfen und durchsuchen.
In einer weiteren Applikation wird SVG zur Präsentation von dynamisch
generierten Horizonten verwendet. Der Horizont wird auf dem Server aus einem
digitalen Höhenmodell extrahiert und anschliessend im SVG-Format zum Client
zurückgesendet. Der Benutzer gibt die Parameter in einem HTML-Formular ein.
Abb. 3. SVG-Visualisierung von Horizonten. Daten: DHM Rimini © L+T.
Java 2D
Die Java Standard Edition umfasst seit der Version 2.0 die Java 2D-Bibliothek,
die sehr leistungsfähige Grafikoperationen implementiert. Um die Java 2DBibliothek verwenden zu können, sind umfangreiche Kenntnisse der JavaProgrammiersprache notwendig. Java 2D offeriert dem Programmierer aber
praktisch alle nur erdenklichen grafischen Optionen.
Das Rendering der Java 2D-Bibliothek bietet Antialiasing und ist meist von sehr
guter Qualität. Interaktion, zum Beispiel "Mouse-Over"-Effekte, lässt sich
jedoch nur mit vergleichsweise grossem Aufwand realisieren. Auch ist Java 2D
nicht auf jeder Plattform vorinstalliert oder für gewisse Plattformen gar nicht
verfügbar.
Da Java 2D eine Programmierschnittstelle (API) zur Verfügung stellt und kein
Dokumentformat spezifiziert, muss sich der Programmierer selbst um die
Übertragung der darzustellenden Vektorgeometrien kümmern. Java stellt hierzu
jedoch sehr vielfältige Möglichkeiten zur Verfügung, wie zum Beispiel RMI oder
CORBA. Damit kann ein Java-Applet oder -Programm direkt mit Objekten auf
einem Server kommunizieren.
Im Rahmen einer Diplomarbeit wurde am Institut für Kartographie ein JavaApplet implementiert (Winkler 2000), welches eine thematische Karte zeigt
(www.karto.ethz.ch/~dwinkler/).
Abb. 4. Java 2D™-Applet zur Visualisierung thematischer Karten. www.karto.ethz.ch/~dwinkler/
VRML
Die Virtual Reality Modeling Language (VRML) ist ein de facto-Standard für die
Beschreibung von 3D-Objekten und 3D-Welten im World Wide Web. VRML
(www.vrml.org) ist wie SVG oder Flash die Spezifikation einer Dateistruktur und
unterscheidet sich darin zum Beispiel von Java 3D. Java 3D ist wie Java 2D eine
Erweiterung zu Java und spezifiziert eine Programmierschnittstelle. Damit
eignet sich VRML gut für kleinere Modelle, die keine komplexen Operationen,
zum Beispiel zur Navigation, benötigen. Wie SVG besteht auch VRML aus einer
Baumstruktur, basiert aber im Gegensatz zu SVG nicht auf XML. Auch hier kann
der Kartenautor mit JavaScript die Baumstruktur manipulieren oder mögliche
Interaktionen hinzufügen. Theoretisch besteht auch hier die Möglichkeit mit
JavaScript auf das umgebende HTML-Dokument zuzugreifen. In der Praxis
stösst der Programmierer jedoch auf Inkompatibilitäten zwischen
verschiedenen Browser- und Plug-In-Versionen.
Es gibt verschiedene Anbieter von Plug-Ins zur Darstellung von VRML und dementsprechend variiert auch die Qualität des Rendering sehr stark.
Leider hat sich VRML nie auf breiter Basis durchsetzen können. Es gibt deshalb
eine Vielzahl mit VRML konkurrierender Technologien. Damit verbunden sind
für den Benützer umständliche und langwierige Installationen von Plug-Ins.
Neben Java 3D ist VRML zurzeit jedoch der einzige einigermassen verbreitete
Standard für die Darstellung von dreidimensionalen Objekten im WWW.
Für das Projekt "Geowarn" sind dreidimensionale Darstellungen eine wichtige
Komponente. Da aber nur wenige Daten eine Repräsentation in 3D zwingend
erfordern, soll der Entwicklungsaufwand minimal gehalten werden. Der
entwickelte Prototyp beinhaltet Isoflächen gleicher Verbreitungsgeschwindigkeit
aus den Voxeldaten, welche auch für die Profile verwendet wurden (siehe
Abschnitt zu Flash). Auf komplexe Steuerelemente in der HTML-Seite wurde
bewusst verzichtet, um die bereits erwähnten Probleme zu vermeiden.
Stattdessen beinhaltet das VRML-Modell selbst Bedienelemente in Form von
Säulen und Kugeln, welche auf Klick reagieren.
Abb. 5. Visualisierung dreidimensionaler Isoflächen und seismischen Hypozentren klassiert
nach ihrer Magnitude.
Schlussfolgerung
Mit nur kleinem zeitlichem und finanziellem Aufwand ist es möglich, eine
interaktive und animierte Karte im Internet zu veröffentlichen. Mit Ausnahme
von VRML stellen alle besprochenen Standards die Grafik in guter bis sehr guter
Qualität dar.
Mit Flash und SVG lassen sich auch komplexe interaktive und animierte Karten
realisieren. Werden die Kartenprojekte jedoch sehr umfangreich, weil das
abgedeckte Gebiet sehr gross ist oder die Karte eine sehr hohe
Informationsdichte aufweist, muss nach Alternativen gesucht werden. Wenn
umfangreiche Analysefunktionen oder komplexe Bedienoberflächen notwendig
sind, bietet sich Java 2D in Kombination mit Swing, RMI und anderen
Komponenten von Java 2 als Lösung an. Java erfordert jedoch im Vergleich zu
Flash und SVG vertiefte Programmierkenntnisse. Dafür können mit Java die
Präsentation, die Logik und die Daten strikt voneinander separiert werden. Dies
kann ein bedeutender Vorteil sein, wenn Kartenprojekte von Teams bestehend
aus Programmierern, Layoutern, GIS-Spezialisten und Kartografen realisiert
werden. Auch können die Karte, die Präsentation und die Logik einzeln leichter
nachgeführt werden, wenn diese drei Komponenten strikt getrennt bleiben.
VRML ist neben Java 3D nach wie vor die einzige plattformunabhängige und
Möglichkeit, um dreidimensionale Objekte im Internet zu visualisieren.
Konkurrierende Technologien haben einen kleineren Verbreitungsgrad, sind
nicht oder nur ungenügend dokumentiert oder stehen unter der Kontrolle einer
einzelnen Firma.
Bibliographie
Dransch, Doris (1995). "Temporale und nontemporale Computer-Animation in
der Kartographie". Dissertation. Selbstverlag Fachbereich Geowissenschaften.
Freie Universität Berlin.
Harrower, Mark; Keller, C. Peter; Hocking, Diana (1997). "Cartography on the
Internet: Thoughts and a preliminary user survey". Cartographic Perspectives
26. North American Cartographic Information Society.
Winkler, Daniela (2000). "Erstellung eines Java-Applets zur Visualisierung und
Analyse von Thematischen Karten“. Diplomarbeit am Institut für Kartographie,
ETH Zürich. www.karto.ethz.ch/~dwinkler/
Wolter, Sascha (2002). "Blitzgewitter. Fünf Web-orientierte
Illustrationsprogramme mit Flash-Export". c't 1/2002
Herunterladen