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