14.04.2015 Aufrufe

XML-basierte Visualisierung von Geodaten ... - GIS-Management

XML-basierte Visualisierung von Geodaten ... - GIS-Management

XML-basierte Visualisierung von Geodaten ... - GIS-Management

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>XML</strong>-<strong>basierte</strong> <strong>Visualisierung</strong> <strong>von</strong> <strong>Geodaten</strong> mittels SVG<br />

Franz-Josef Behr, Hochschule für Technik, Stuttgart<br />

Zusammenfassung<br />

Im Umfeld der Geoinformatik sind unterschiedliche Datenformate für den Austausch <strong>von</strong> <strong>Geodaten</strong><br />

seit langem <strong>von</strong> großer Bedeutung für die berufliche Praxis. Neben den dort eingesetzten offiziellen<br />

und De-facto- Standards spielen im Bereich der Informationstechnologie im allgemeinen sowie<br />

zunehmend in der Geoinformatik <strong>XML</strong>-<strong>basierte</strong> Verfahren des Datenaustausches und der<br />

Kommunikation eine zunehmend bedeutende Rolle..<br />

Dieser Beitrag behandelt Grundlagen der eXtensible Mark-up Language (<strong>XML</strong>) mit Schwerpunkt auf<br />

dem Einsatz in der Geoinformatik und Webkartographie. Grundlagen <strong>von</strong> <strong>XML</strong> sowie relevante<br />

Standards im <strong>XML</strong>-Umfeld werden vorgestellt. Schwerpunkt der Betrachtung ist dabei Aufbau und<br />

Nutzung der SVG-Sprache.<br />

1 <strong>XML</strong> – die Grundlage<br />

Bei der eXtensible Mark-up Language (<strong>XML</strong>) handelt es sich um eine Auszeichnungssprache (engl.<br />

mark-up language), die es als Metasprache erlaubt, weitere Sprachen zu definieren. Derartige<br />

Sprachen und Konzepte haben in den vergangenen Jahren rasante Verbreitung im Umfeld der<br />

Geoinformatik und der Informationsverarbeitung im Allgemeinen gefunden. Wesentliche<br />

Erfolgsfaktoren für <strong>XML</strong> sind zum einen die text<strong>basierte</strong> Kodierung der Information (d. h. keine<br />

Binärdaten), zum anderen der für den Nutzer zunächst leichte Zugang zur Interpretation der<br />

Dateninhalte.<br />

Wesentliche Stuktureinheit in <strong>XML</strong> ist das Element. Es besitzt einen Elementnamen und weist den in<br />

Abbildung 1 dargestellten Aufbau auf, besteht also aus einem einleitenden Start-Tag 1 , dem<br />

eigentlichen Elementinhalt und dem schließenden End-Tag. Der Elementname taucht in beiden Tags<br />

auf, beim End-Tag mit vorangestelltem Schrägstrich.<br />

Abbildung 1: Aufbau eines <strong>XML</strong>-Elements.<br />

Für den Elementinhalt gilt, dass er Text (wie in Abbildung 1) oder wiederum andere Elemente<br />

enthalten kann; er kann aber auch leer sein und dann in verkürzter Schreibweise in der Form<br />

<br />

1 tag (engl.): Schildchen, Etikett


Behr<br />

notiert werden. Textinhalte unterliegen einer Einschränkung: Sie dürfen nicht Zeichen enthalten, die<br />

für das Markup, d. h. die Gliederung des <strong>XML</strong>-Dokuments, vorbehalten sind, wie < oder &. Diese<br />

müssen maskiert als Entitäten (engl. entities) kodiert werden (z. B. &lt; anstelle <strong>von</strong> <br />

6: ]><br />

7: <br />

2 Eine reale Schachtel kann nur in einer anderen enthalten sein, und Schachteln können sich nicht<br />

überlappen.


Behr 3<br />

8: 3500000.0<br />

9: 5400000.0<br />

10: <br />

In den Zeilen 2 bis 6 erfolgt die Dokumenttyp-Deklaration (document type declaration), die den<br />

Aufbau des Dokumentes enthält. In unserem einfachen Fall beschreibt sie in den Zeile 2 – 6 die<br />

Zugehörigkeit zum Wurzelelement punkt, das als Inhalt die Elemente x und y enthält. Diese<br />

bestehen aus Zeichendaten 3<br />

Die Zeilen 7 bis 10 enthalten ein punkt-Element, das zugleich Wurzelelement ist. Elementinhalt<br />

sind, wie in Zeile 3 deklariert, die x- und y-Elemente mit den Koordinatenwerten.<br />

Verarbeitungsanweisungen (im Beispiel nicht enthalten) sind für weiter verarbeitende Programme<br />

vorgesehen, beispielsweise zur Berücksichtigung <strong>von</strong> Stilangaben oder zur Durchführung einer XSL-<br />

Transformation. In CDATA-Abschnitten können beispielsweise ECMAScript-Anweisungen in das<br />

<strong>XML</strong>-Dokument integriert werden, ohne dass sie <strong>von</strong> einem <strong>XML</strong>-Parser ausgewertet werden.<br />

Wichtiger Bestandteil <strong>von</strong> Programmier- und Auszeichnungssprache sind Kommentare, eine<br />

Dokumentbeschreibung im Source-Code, die vom Parser ignoriert wird. Für <strong>XML</strong>-Sprachen sieht ein<br />

Kommentar folgendermaßen aus:<br />

<br />

Zwischen den Kommentarzeichen können alle beliebigen Zeichen stehen, mit<br />

Ausnahme <strong>von</strong> --, da diese das Ende eines Kommentars markieren.<br />

1.1 Die <strong>XML</strong>-Sprachfamilie<br />

Unter dem Oberbegriff <strong>XML</strong> verbergen sich eine große Reihe <strong>von</strong> unterschiedlichen Sprachen und<br />

Konzepten, die weitgehend vom World Wide Web Consortium (W3C, http://w3.org/) koordiniert und<br />

verantwortet werden 4 . Dazu zählen unter anderem<br />

- Dokumententyp-Deklaration und <strong>XML</strong> Schema,<br />

- <strong>XML</strong>-Namensräume,<br />

- XLink - <strong>XML</strong> Linking Language,<br />

- <strong>XML</strong> Pointer,<br />

- Extensible Stylesheet Language Family mit XSL Transformations, <strong>XML</strong> Path Language und<br />

XSL Formatting Objects,<br />

- CSS2 - Cascading Stylesheets,<br />

- Document Object Model,<br />

- Synchronized Multimedia Integration Language,<br />

3 Das Schlüsselwort #PCDATA leitet sich historisch <strong>von</strong> dem Ausdruck »parsed character data« ab:<br />

Zeichendaten, die <strong>von</strong> einem <strong>XML</strong>-Programm (Parser) weiter zerlegt werden.<br />

4<br />

Deutsche Übersetzungen einer Vielzahl <strong>von</strong> Empfehlungen des W3C finden sich unter<br />

http://www.w3.org/2003/03/Translations/byLanguage?language=de.


Behr<br />

- XHTML - Extensible Hypertext Markup Language.<br />

Darüber hinaus finden sich <strong>XML</strong>-Technologien in unterschiedlichsten Anwendungsbereichen. Für die<br />

Kodierung mathematischer Formeln beispielsweise steht MathML zur Verfügung<br />

(http://www.w3.org/Math/). Selbst im Musikbereich eröffnen sich neue Möglichkeiten des<br />

Datenaustausch mit anderen Programmen dank des <strong>XML</strong>-<strong>basierte</strong>n Cap<strong>XML</strong>-Formats<br />

(http://www.capella.de/).<br />

Im Umfeld der Geoinformatik bildet <strong>XML</strong> die Grundlage der Geography Markup Language (GML,<br />

Lake 2004) sowie des darauf aufbauenden künftigen deutschen <strong>Geodaten</strong>austauschformats NAS<br />

(Norm<strong>basierte</strong> Austauschschnittstelle, http://www.adv-online.de/). Weitere Einsatzgebiete sind<br />

Kommunikationsschnittstellen bei Web-Services im Umfeld des Internet-Mappings wie dem Web<br />

Map Service (OGC 2004) und Web Feature Service (OGC 2002) sowie bei Internet-<strong>GIS</strong>-Servern<br />

(ESRI 2004, MapInfo 2005).<br />

1.2 Dokumententyp-Deklaration und <strong>XML</strong> Schema<br />

Die Dokumententyp-Deklaration (Document type declaration, DTD) erlaubt es, vorkommende<br />

Elemente, ihre Attribute und ihren hierarchischen Aufbau zu definieren. Traditionell u. a. im Bereich<br />

<strong>von</strong> HTML und SVG angewandt wird diese Form der Elementdeklaration heutzutage als<br />

unzureichend angesehen und zunehmend durch die Nutzung <strong>von</strong> <strong>XML</strong>-Schema abgelöst.<br />

Ein <strong>XML</strong>-Schema (http://www.w3.org/<strong>XML</strong>/Schema) erlaubt es, detailliert und exakt eine Klasse <strong>von</strong><br />

<strong>XML</strong>-Dokumenten zu spezifizieren. Im Vergleich zu DTD wächst die Komplexität, u.a. auch wegen<br />

der Vererbungsmechanismen. Für ein auf einem solchen Schema basierendes konkretes „<strong>XML</strong>-<br />

Objekt“ wird der Begriff „Instanzdokument“ oder kurz „Instanz“ verwendet. Eine <strong>XML</strong>-Instanz kann<br />

als <strong>XML</strong>-Datei existieren, kann aber genauso gut ein Datenstrom oder Feldinhalt in einem<br />

Datenbanksatz sein. Schemadefinitionen spielen insbesondere bei GML sowie bei NAS eine<br />

bedeutende Rolle.<br />

Ist ein <strong>XML</strong>-Dokument wohlgeformt und folgt es einer als DTD oder Schema vorgegebenen<br />

Deklaration, heißt es gültig.<br />

1.3 <strong>XML</strong>-Namensräume<br />

Wie zuvor erwähnt besteht bei der Wahl der Elementnamen große Freiheit, so dass die mehrfache<br />

Nutzung identischer Namen nicht ausgeschlossen werden kann 5 . <strong>XML</strong>-Namensräume (engl.<br />

namespaces) bieten eine einfache Möglichkeit, um Element- und Attributnamen, die in <strong>XML</strong>-<br />

Dokumenten verwendet werden können, eindeutig zu benennen. Die Element- und Attributnamen<br />

werden mit Namensräumen verknüpft, die durch URI-Verweise 6 identifiziert werden.<br />

Im folgenden Beispiel werden für das TKFD-Wurzelelement die Namensräume tkfd und gml<br />

deklariert. Aus dem Namensraum tkfd werden die Elemente Bahnhof und oar sowie das Attribut<br />

id verwendet. Aus dem gml-Namensraum werden die Elemente centerOf, Point und pos<br />

verwendet 7 .<br />

5 Beispielsweise kann ein titel-Element im Umfeld einer Personenverwaltung und einer CD-<br />

Datensammlung auftauchen!<br />

6 URI: Abkürzung für Unified Resource Identifier zur eindeutigen Identifizierung einer Internet-<br />

Ressource (Berners-Lee 1998).<br />

7 Bei der Schreibweise im GML-Umfeld werden Eigenschaften <strong>von</strong> Objekten in Kleinbuchstaben<br />

notiert, während sog. Features mit Großbuchstaben beginnen.


Behr 5<br />

<br />

<br />

<br />

9201<br />

<br />

<br />

3515955.37 5409276.28<br />

<br />

<br />

<br />

1.4 <strong>XML</strong> Linking Language (XLink) und <strong>XML</strong> Pointer Language (XPointer)<br />

Die <strong>XML</strong> Linking Sprache (XLink, http://www.w3.org/<strong>XML</strong>/Linking) erlaubt es, Elemente in <strong>XML</strong>-<br />

Dokumente einzufügen sowie Verknüpfungen zwischen Ressourcen herzustellen. XLink geht damit<br />

über das Verlinken <strong>von</strong> Informationen, wie es in HTML verwendet wird, wesentlich hinaus. In SVG-<br />

Dokumenten gestattet es XLink, separat definierte Symbole, wie z. B. kartographische Signaturen,<br />

oder Rasterdaten an beliebiger Stelle zu referenzieren und in eine Karte zu integrieren. Unterstützt<br />

wird XLink durch XPointer (http://www.w3.org/TR/xptr-framework/) zur gezielten Adressierung <strong>von</strong><br />

Dokumentteilen (Fragmenten).<br />

1.5 Extensible Stylesheet Language<br />

Mit der Extensible Stylesheet Language Family (XSL, http://www.w3.org/Style/XSL/) können <strong>XML</strong>-<br />

Dokumente in andere <strong>XML</strong>-Dokumente oder in Datenströme transformiert werden können. Zur XSL-<br />

Sprachfamilie gehören XSL Formatting Objects (XSL-FO), XSLT und die <strong>XML</strong> Path Language<br />

(XPath).<br />

XSL-FO wird verwendet, um die Formatierung für die Darstellung <strong>von</strong> <strong>XML</strong>-Dokumenten auf dem<br />

Bildschirm festzulegen. Es werden Bereiche der darzustellenden Seite definiert und dazugehörige<br />

Eigenschaften mittels Formatierungsobjekten bestimmt.<br />

XSL Transformations (XSLT) dagegen dient der Überführung <strong>von</strong> Inhalt und Struktur eines <strong>XML</strong>-<br />

Dokuments in eine andere Struktur. So kann zum Beispiel ein <strong>XML</strong>-Dokument in SVG umgewandelt<br />

werden, um es auf diese Weise in einem Browser anzeigen zu können. Das gleiche <strong>XML</strong>-Dokument<br />

könnte aber auch nach HTML transformiert werden. Wichtig für den Bereich der Geomatik ist die<br />

Transformation <strong>von</strong> GML-Instanzen in SVG-Dokumente, ein Ansatz, der z. B. <strong>von</strong> der britischen<br />

Ordnance Survey zur <strong>Visualisierung</strong> <strong>von</strong> Katasterdaten verwendet wird (Ordnance Survey 2005). Eine<br />

praktische Umsetzung zeigt Barth (2004) mit der Überführung bayerischer DFK-Daten nach SVG<br />

mittels XSLT.<br />

Mit XPath (http://www.w3.org/TR/xpath) werden bei der Transformation Teile eines <strong>XML</strong>-<br />

Dokuments. adressiert (W3C 2002). Für diese Selektion wird keine <strong>XML</strong>-Syntax verwendet, sondern<br />

eine Art Pfadangabe. So wird beispielsweise aus dem tkfd:Bahnhof-Element des zuvor gezeigten<br />

<strong>XML</strong>-Beispiel mittels<br />

<br />

der Rechtswert selektiert.


Behr<br />

1.6 CSS2 - Cascading Stylesheets<br />

Kaskadierende Stilangaben (Cascading Style Sheets, CSS, (http://www.w3.org/Style/CSS/) erlauben<br />

es, auf einfache Weise Vorgaben für die <strong>Visualisierung</strong> <strong>von</strong> <strong>XML</strong>-Dokumenten auf Ausgabegeräten<br />

unterschiedlicher Art (Bildschirm, Drucker, ...) zu spezifizieren. Mit der Trennung <strong>von</strong> Präsentation<br />

und Inhalt wird ein wesentliches Konzept der raumbezogenen Informationsverarbeitung umgesetzt. In<br />

SVG können z. B. mittels CSS Darstellungsstile für einzelne Layer zentral definiert werden.<br />

1.7 DOM Document Object Model<br />

Das Document Object Model – seit 27.01.2004 als W3C-Empfehlung vorliegend – ist eine plattformund<br />

sprachneutrale Schnittstelle, die es Programmen und Skriptsprachen erlaubt, dynamisch auf den<br />

Inhalt <strong>von</strong> <strong>XML</strong>-Dokumenten zuzugreifen und ihren Inhalt, ihre Struktur und ihren Darstellungsstil zu<br />

modifizieren (W3C 2005). Von dieser Möglichkeit wird – in Kombination mit ECMAScript – im<br />

Rahmen <strong>von</strong> interaktivem Zugriff auf Elemente in SVG-Karten intensiv Gebrauch gemacht (Williams<br />

2005).<br />

1.8 Synchronized Multimedia Integration Language<br />

Die Synchronized Multimedia Integration Language (SMIL, http://www.w3.org/AudioVideo/) erlaubt<br />

die Integration einer Sammlung unabhängiger multimedialer Objekte in eine synchronisierte<br />

Multimedia Präsentation (W3C 1998). SMIL kann mit SVG zur Präsentation multimedialer Inhalte<br />

kombiniert werden.<br />

1.9 XHTML<br />

Die Extensible Hypertext Markup Language (http://www.w3.org/MarkUp/) hat HTML abgelöst und<br />

ist die W3C-Empfehlung, auf deren Grundlage aktuelle Web-Seiten implementiert werden. XHTML<br />

ist, wie der Name ausdrückt, <strong>XML</strong>-basiert. SVG-Grafiken können, u. a. dank der unterschiedlichen<br />

Namensräume, darin integriert werden.<br />

1.10 ECMAScript<br />

ECMAScript – landläufig bekannt unter dem Namen JavaScript – liegt als internationaler ISO-<br />

Standard ISO/IEC 16262 vor (ECMA International 1999). Die objekt<strong>basierte</strong> Sprache bietet die<br />

grundsätzliche Möglichkeit, Web-Seiten in Browsern mit zusätzlicher Funktionalität zu bereichern.<br />

SVG-Dokumente können durch ECMAScript dahingehend erweitert werden, dass sie auf dynamische<br />

Interaktion des Benutzers reagieren können. So wird es möglich, Maus- und Tastatureingaben des<br />

Anwenders zu verarbeiten und darauf mit dynamischen Änderungen der angezeigten Karte zu<br />

reagieren.<br />

2 SVG im Überblick<br />

SVG als <strong>XML</strong>-<strong>basierte</strong>, textorientierte Auszeichnungssprache erlaubt es, zweidimensionale,<br />

skalierbare Grafiken zu beschreiben. Vektorelemente, Rasterdaten und Text können als grafische<br />

Objekte in ein Dokument integriert werden. Die Darstellung der Grafiken erfolgt durch sogenannte<br />

User Agents, d. h. Browser, Browser-Plugins oder eigenständige SVG-Viewer.<br />

Inhaltlich wird diese <strong>XML</strong>- Sprache vom W3C betreut, auf dessen Web-Site http://www.w3.org der<br />

jeweils aktuellen Stand zu finden ist. Für technisch Interessierte gibt es eine Reihe <strong>von</strong> Mailinglisten,


Behr 7<br />

wie z. B. http://groups.yahoo.com/group/svg-developers (mit sehr hohem Nachrichtenaufkommen),<br />

http://groups.yahoo.com/group/svg-mobile sowie http://koala.ilog.fr/mhonarc/svg-coders/.<br />

Als Vektorgrafikformat hat SVG viele Vorteile gegenüber den herkömmlichen, im Web verwendeten<br />

Grafikformaten wie GIF, JPG und PNG (Watt 2001, Fibinger 2001):<br />

- nicht-proprietäres, offengelegtes Format,<br />

- Die Größe <strong>von</strong> Dateien kann gering gehalten werden, da sie nur aus Text bestehen. 8<br />

- Es sind hochauflösende Grafiken möglich, die auch bei Skalierung nicht an Qualität verlieren.<br />

- SVG unterstützt eine hohe Farbtiefe<br />

- Animationen sind möglich, die im Gegensatz zu animierten GIF-Grafiken nicht zu größeren<br />

Dateien führen.<br />

- SVG-Grafiken untersützen das Document Object Model (DOM, Kap.1.7). Dies ermöglicht es,<br />

SVG-Elemente per ECMAScript oder jeder anderen objektorientierten Programmiersprache<br />

zu manipulieren.<br />

- Filtereffekte, wie z. B. Schatten, sowie Farbverläufe sind möglich.<br />

Aufgrund dieser besonderen Eigenschaften hat SVG insbesondere im Bereich der Geoinformatik und<br />

Kartographie sehr hohe Bedeutung gewonnen. So ist SVG beispielsweise für den Web Map Service<br />

und Web Feature Service als Ausgabeformat vorgesehen (Kettemann 2005). Einige GI-Systeme und -<br />

Werkzeuge bieten direkte SVG-Erzeugung, für andere stehen Konvertierungswerkzeuge als Zusatz<br />

zur Verfügung (siehe unten). Ebenfalls existieren Ansätze für die Online-Digitalisierung <strong>von</strong><br />

<strong>Geodaten</strong> (Neumann 2004). Am Landesvermessungsamt Baden-Württemberg wird SVG für die<br />

Herstellung analoger touristischer Karten genutzt (Graf 2004).<br />

2.1 Historische Entwicklung<br />

Aufbauend auf Sprachansätzen verschiedener Industrieverbänden wurde 1999 der erste Sprachentwurf<br />

publiziert. Die erste offizielle Empfehlung des W3C liegt seit September 2001 vor. Seit Januar 2003<br />

existiert bereits ein zweiter offizieller Standard, die Version 1.1. Die SVG-Working Group arbeitet<br />

momentan an Version 1.2 9 , über deren Neuerungen Held et al. (2003) berichten. Zur Working Group<br />

gehören namhafte Firmen der IT- und Telekommunikationsindustrie 10 , so dass mit einer<br />

Weiterentwicklung dieser <strong>XML</strong>-Sprache zu rechnen ist.<br />

Die Version 1.1 gliedert sich diese in verschiedene Profile: SVG Standard (für Desktops), SVG Basic<br />

(für PDAs und Smartphones), SVG Tiny (für kleinere Mobiltelefone) und SVG Print (gegenwärtig<br />

noch im Entwicklungsstadium).<br />

2.2 Aufbau eines SVG-Dokuments<br />

Ein SVG-Dokument besitzt folgenden grundsätzlichen Aufbau:<br />

[1] <br />

[2] <br />

[3]


Behr<br />

viewBox="3450812.17 -5434284.48 2489.23 1690.79"<br />

preserveAspectRatio="xMidYMid meet"<br />

xmlns="http://www.w3.org/2000/svg"><br />

...<br />

[n] <br />

Nach der <strong>XML</strong>-Deklaration in Zeile 1 und dem Verweis auf die externe DTD (Zeile 2) folgt in Zeile 3<br />

das svg-Wurzelelement. Zu seinen wichtigsten Attributen zählen Größenangaben der Karte in Form<br />

<strong>von</strong> width und height, das preserveAspectRatio-Attribut zur Steuerung der Einpassung des<br />

über das viewbox-Attribut spezifizierten Darstellungsbereichs sowie optionale Namensraum-<br />

Deklarationen.<br />

Beim viewBox-Attribut werden der x- und y-Wert der linken oberen Ecke sowie die Höhe und die<br />

Breite des Rechtecks angegeben (hier: Gauß-Krüger-Koordinaten wird negativem Hochwert).<br />

Abhängig <strong>von</strong> den Höhen- und Breitenangaben im Verhältnis zu denen des SVG-Elementes ergeben<br />

sich Skalierungsfaktoren für die x- und für die y- Richtung. Zusätzlich steuert<br />

preserveAspectRatio, ob der abgebildete Ausschnitt verzerrt werden darf, oder ob er proportional<br />

dargestellt werden muss. Wird die proportionale Darstellung gewählt, so kann weiterhin entschieden<br />

werden, ob die Grafik auf das Rechteck skaliert wird, oder ob überstehende Teile abgeschnitten<br />

werden.<br />

SVG unterstützt relative (u.a. Pixel, Prozent) und absolute (Inch, Zentimeter, Millimeter usw.)<br />

Einheiten. Ist keine Einheit spezifiziert, wird automatisch die Einheit px (Pixel) angenommen.<br />

Nach dem Wurzelelement folgt der eigentliche Inhalt. In Zeile [n] befindet sich schließlich das End-<br />

Tag des svg-Wurzelelements.<br />

Wichtig ist, dass in einem svg-Element weitere svg-Elemente eingebettet werden können, die unabhängig<br />

<strong>von</strong> anderen verändert werden können. So lassen sich z. B. Übersichtskarten und<br />

Navigationselemente in eine SVG-Grafik integrieren.<br />

2.3 Koordinatensysteme<br />

Generell liegt der Nullpunkt der Koordinatensysteme in der jeweils linken, oberen Ecke. Die positive<br />

x-Achse zeigt nach rechts, die positive y-Achse nach unten (Abbildung 2).<br />

Für die Nutzung <strong>von</strong> SVG im <strong>GIS</strong>-Bereich ist es daher in der Regel notwendig, eine Koordinatentransformation<br />

vorzunehmen. Dies kann bei der Erzeugung des SVG-Dokuments in dem<br />

generierenden Programm geschehen. Alternativ kann die Transformation im SVG-Dokument selbst<br />

vorgenommen werden:<br />


Behr 9<br />

Canvas<br />

Viewport<br />

+x<br />

+y<br />

Abbildung 2: Die Malfläche (canvas) ist potentiell unendlich groß. Angezeigt wird<br />

der Inhalt des Viewports. Die positive y-Achse zeigt nach unten.<br />

2.4 Grundlegene Primitive<br />

In den nachfolgenden Unterabschnitten werden für die kartographische <strong>Visualisierung</strong> wesentliche<br />

Elemente vorgestellt.<br />

2.4.1 Rechtecke<br />

Ein Rechteck wird mit dem rect-Element erzeugt, einem leeren Element. Die Attribute x und y<br />

legen die Koordinaten des linken oberen Eckpunktes fest (Standardwert: 0). Breite (width) und die<br />

Höhe (height) müssen immer aufgeführt sein. Durch optionale Werte rx und ry lassen sich die<br />

Ecken des Rechtecks abrunden.<br />

Abbildung 3: Definition eines rect-Elements und seine Anzeige im Viewer<br />

(Quelle: http://svg.tutorial.aptico.de/)<br />

Der Darstellungsstil wird über das style-Attribut vorgegeben. fill erwartet eine RGB-Farbangabe<br />

oder das Schlüsselwort none 11 und legt die Füllfarbe für das Element fest. Voreingestellter Wert für<br />

das Attribut fill ist black 12 .<br />

Die Rahmenlinie wird durch die Stileigenschaft stroke bestimmt, das ebenfalls eine Farbangabe<br />

oder das Schlüsselwort none als Wert erwartet. Voreingestellter Wert ist none. Rahmenlinien eines<br />

Elements werden also nur dargestellt, wenn Sie der Stileigenschaft stroke eine Farbangabe<br />

zuordnen!<br />

Die Stileigenschaft stroke-width bietet die Möglichkeit, die Stärke der Rahmenlinie zu<br />

bestimmen. Standardwert für stroke-width ist, wie generell in SVG üblich, 1px.<br />

11 keine Füllung bzw. keine Linie<br />

12<br />

Farbangaben sind in unterschiedlicher Form möglich. black entspricht in hexadezimaler<br />

Schreibnweise #000000, kann aber auch als rgb(0,0,0) spezifiziert werden.


Behr<br />

2.4.2 Linien<br />

Eine Linie besteht aus zwei Punkten. Mit Hilfe der Attribute x1 und y1 spezifizieren Sie den<br />

Startpunkt, mit Hilfe der Attribute x2 und y2 den Endpunkt der Linie. Im nachfolgenden Beispiel<br />

werden drei Linien mit unterschiedliche Strichstärken definiert.<br />

2.4.3 Kreise<br />

Abbildung 4: Linien in SVG.<br />

Ein Kreis berücksichtigt neben den Daten für den Mittelpunkt (cx und cy) den Radius (Attribut r).<br />

Dieser ist ein Pflichtattribut; fehlende Mittelpunktskoordinaten werden vom System auf 0 gesetzt. Ein<br />

Beispiel zeigt Abbildung 5.<br />

Abbildung 5: Beispiel für Kreis in SVG.<br />

Kreise lassen sich im Kartographieumfeld für die Darstellung <strong>von</strong> Punktobjekten nutzen, sofern man<br />

auf spezielle Symbole verzichtet.<br />

2.4.4 Polygone<br />

Ein polygon-Element wird hauptsächlich für die Darstellung geschlossener Flächen verwendet. Die<br />

Syntax für das Tag lautet:<br />

<br />

Die beiden Koordinaten jedes Punktes sind jeweils durch ein Komma voreinander getrennt, wie es<br />

Abbildung 6 für den Fall eines Dreieck, als Polygon spezifiziert, zeigt:


Behr 11<br />

2.4.5 Polylinien<br />

Abbildung 6: Beispiel eines Polygons in SVG (Quelle: http://www.w3c.org/)<br />

Ein -Element definiert einen zusammenhängenden Linienzug. Typischerweise werden<br />

nicht geschlossene, linienhafte Objekte durch polyline-Elemente definiert. Ihre Syntax entspricht<br />

weitgehend der des Polygons (Abbildung 7).<br />

Abbildung 7: Beispiel einer Polylinie in SVG (Quelle: http://www.w3c.org/)<br />

2.4.6 Pfade<br />

Die beschriebenen Grundformen decken schon einen Großteil notwendiger Gestaltungsmittel in<br />

Karten ab. In einem Punkt sind wir dennoch eingeschränkt:: in der Erstellung <strong>von</strong> Pfaden, die sowohl<br />

aus Polygonpunkten als auch aus frei definierbaren Kurvenabschnitten bestehen. Dies ermöglicht das<br />

path-Element, über dessen Attribut d Knotenpunkte in ihrer Lage und Beschaffenheit genau<br />

beschrieben werden.<br />

Mögliche Befehle zur Festlegung der Beschaffenheit <strong>von</strong> Knoten sind:<br />

- M (moveto),<br />

- z (closepath),<br />

- L, l (lineto),<br />

- H, h (horizontal lineto),<br />

- V, v (vertical lineto),<br />

- C, c (curveto),<br />

- S, s (smooth curveto),<br />

- A, a (elliptic arc)<br />

Befehle, die in Groß- und Kleinschreibung auftreten, lassen absolute bzw. relative Koordinaten für


Behr<br />

die Stützpunkte zu. path-Elemente repräsentieren den Außenrand einer Figur, die auf verschiedene<br />

Weise gefüllt und umrandet werden kann. Eine solche Figur kann gleichzeitig noch als Clipping Path<br />

verwendet werden, um Teile der Graphik auszublenden. Das nachfolgende Beispiel (Abbildung 8)<br />

zeigt wieder ein Dreieck, dieses Mal jedoch nicht über ein polygon-Element, sondern über ein path-<br />

Element modelliert.<br />

2.4.7 Texte<br />

Abbildung 8: Beispiel eines path-Elements in SVG (Quelle: http://www.w3c.org/)<br />

Um Texte in SVG zu erzeugen wird das text-Element verwendet. Die Attribute x und y beziehen<br />

sich auf den Startpunkt der Grundlinie, unterhalb des Textes. Ein Beispiel:<br />

SVG<br />

Die Schriftart kann durch die Stileigenschaft font-family, die Schriftgröße durch font-size<br />

angegeben werden. Mit Hilfe eines optionalen Attributs text-anchor kann der Text zentriert, linksoder<br />

rechtsbündig ausgegeben werden. Unter Verwendung <strong>von</strong> können mehrzeilige Texte<br />

erstellt und durch die Transformation transform="rotate(...)" gegebenenfalls auch gedreht<br />

werden. Verschiedene Gestaltungsmöglichkeiten zeigt Abbildung 9.<br />

Abbildung 9: Texte sind in SVG vielfältig gestaltbar (Kupke & Metzger 2000).


Behr 13<br />

2.5 Strukturierungselemente in SVG<br />

SVG verfügt über verschiedene Tags, die ausschließlich der Strukturierung des Dokuments dienen.<br />

Die wichtigsten sind:<br />

- , ein Container-Element für die Zusammenfassung <strong>von</strong> Elementen zu einer Gruppe,<br />

vergleichbar der Zusammenfassung <strong>von</strong> <strong>GIS</strong>-Objekten in Layern,<br />

- , Abschnitt für die Definition <strong>von</strong> Referenzobjekten, Texten und Effekten, die an<br />

anderer Stelle aufgerufen werden sollen,<br />

- , zur Zusammenfassung verschiedener Elemente zu einem wiederzuverwendenden<br />

Symbol,<br />

- für die Referenzierung <strong>von</strong> Zeichenobjekten oder Texten an einer anderer Stelle im<br />

Dokument,<br />

Die Gruppenbildung mittels g-Element kann eingesetzt werden, um beispielsweise Stileigenschaften,<br />

die bei allen Elemente einer Gruppe gleich sind, nur einmal zuordnen zu müssen. Diese werden dann<br />

an die Kindelemente vererbt; die Dateigröße wird verringert.<br />

Ein g-Element kann auch weitere g-Elemente enthalten. Gruppierungen sind ebenfalls sehr hilfreich<br />

für die Transformation oder Animation mehrerer Elemente. So können Sie gruppierte Elemente<br />

gemeinsam verschieben, skalieren, rotieren oder anderweitig transformieren und animieren.<br />

Elemente im defs-Bereich, dem Definitionsbereich, werden nicht direkt gezeichnet (gerendert). Sie<br />

können jedoch an beliebiger Stelle referenziert und mittels XLink (Kap. 1.4) eingefügt werden.<br />

Durch die Angabe der Höhe und Breite in use-Tags lassen sich mittels definierte Symbole<br />

an beliebiger Stelle platzieren und skalieren; zusätzlich können alle Arten <strong>von</strong> Transformationen<br />

angewandt werden.<br />

2.6 Grafische Effekte<br />

Auch hinsichtlich grafischer Effekte bietet der SVG-Standard eine große Palette. So sind unter<br />

anderem unterschiedliche Farbverläufe, selbstdefinierte Füllmuster und Beschneidungspfade,<br />

Alphamasken und eindrucksvolle Filtereffekte produzierbar (http://www.w3c.org/TR/SVG11/-<br />

pservers.html).<br />

2.7 Viewer<br />

Für die Ansicht <strong>von</strong> SVG-Dokumenten werden Browser, Plug-Ins oder eigenständige Anzeige-<br />

Klienten benötigt. Eine Übersicht – leider nicht immer aktualisiert – gibt http://www.w3.org/-<br />

Graphics/SVG/SVG-Implementations.htm8#viewer. Zu den am häufigsten eingesetzten Plug-Ins<br />

gehören sicher der Adobe SVG Viewer 3.01 (http://www.adobe.com/svg/viewer/install/beta.html),<br />

verfügbar für Windows®-, MacIntosh-, Solaris und RedHat Linux-Betriebssysteme. Eine Betaversion<br />

der Version 6 steht ebenfalls zur Verfügung. Hinweise auf Probleme bei Installation und Nutzung<br />

geben Held et al. (2003).<br />

Der Mozilla-Browser Firefox bietet eine Native Browser Unterstützung (http://www.mozilla.org/-<br />

projects/svg/). Ein Viewer für mobile Systeme ist der TinyLine SVG viewer<br />

(http://www.tinyline.com/svgt/index.html). SVG-fähige Geräte sind u. a. alle mobile Systeme, die mit<br />

dem Betriebssystem Symbian OS ausgestattet sind (Kukofka 2004).<br />

2.8 SVG-Erzeugung im <strong>GIS</strong>-Umfeld<br />

Für GI-Systeme stehen eine Reihe <strong>von</strong> Werkzeugen zur Verfügung, die teils frei verfügbar, teils


Behr<br />

kommerziell sind (siehe auch http://www.carto.net/papers/svg/links/#comexc):<br />

<strong>GIS</strong> / Internet <strong>GIS</strong> / Produkt Name Kategori<br />

ArcView 3.x<br />

Arc<strong>GIS</strong> 8.x, 9.x<br />

MapViewSVG<br />

http://www.uismedia.de/mapview/-<br />

index.html<br />

ArcView 3.x SVGMapper <strong>GIS</strong>-Exportwerkzeug<br />

ArcView3 shp2svg Open Source, http://www.carto.net/-<br />

papers/svg/utils/shp2svg/<br />

MapInfo Professional Map2SVG Shareware<br />

MapInfo Professional SVGMapMaker kommerziell,<br />

http://www.dbxgeomatics.com/-<br />

SVGMapMaker.asp?Language=FR<br />

GeoMedia SVG Export Module Open Source, http://www.-<br />

mygeomdia.com/<br />

TNT MicroImages TNT <strong>GIS</strong>-Export (built-in)<br />

MapXtreme MapXtreme Serverimplementierung,<br />

http://extranet.mapinfo.com/products/<br />

Features.cfm?ProductID=1162<br />

GeoMedia WebMap GeoMedia WebMap Serverimplementierung,<br />

http://imgs.intergraph.com/gmwm/-<br />

features.asp<br />

FME FME http://www.safe.com/products/fme/-<br />

index.htm<br />

3 Anwendungen<br />

Den typischen Aufbau einer SVG-<strong>basierte</strong>n Internet-Mapping-Applikation zeigt Abbildung 10.<br />

Wesentliche, für SVG-Anwendungen in der Kartographie typische Kennzeichen und Funktionen sind<br />

u. a.<br />

- hohes Maß an Interaktion durch Nutzung <strong>von</strong> ECMAScript,<br />

- Übersichtskarte,<br />

- Zoom, Verschieben des Bildschirmausschnitts,<br />

- Anzeige <strong>von</strong> Attributdaten,<br />

- Hervorhebung (Highlighting) <strong>von</strong> Objekten,<br />

- Suchfunktion,<br />

- Animation.


Behr 15<br />

Abbildung 10: Beispiel für eine SVG-<strong>basierte</strong> Internet-Mapping-Applikation<br />

(http://www.stuttgart2006.net).<br />

Nachfolgend sind einige weitere beispielhafte SVG-Anwendungen aus unterschiedlichen Bereichen<br />

der Kartographie aufgeführt und charakterisiert:<br />

Social Patterns of Vienna<br />

Die “Mutter” vieler SVG-Anwendungen,<br />

Interaktive Abfrage, Attributanzeige,<br />

Statistische Auswertung wählbar,<br />

dynamische Anzeige statistischer Ergebnisse<br />

http://www.karto.ethz.ch/neumann/cartography/vienna/


Behr<br />

Europawahl 2004<br />

interaktive Karte,<br />

thematische, statistische Darstellung,<br />

offizielle Ergebnisseite des Bundeswahlleiters,<br />

http://www.bundeswahlleiter.de/wahlen/-<br />

europawahl2004/informationen/ergebnisse/<br />

Katasterdaten (Grundlage EDBS)<br />

Übersichtskarte, Koordinatenanzeige, Layerkontrolle<br />

Anzeige <strong>von</strong> ALK-Informationen<br />

http://home.t-online.de/home/lutz.spranger/svg/<br />

Tuerler See<br />

hohes Maß an Interaktivität,<br />

Integration DHM, Reliefschummerung,<br />

Längsprofil, Übersichtskarte,<br />

Koordinatenanzeige, Objektsuche,...<br />

http://www.carto.net/papers/svg/tuerlersee/<br />

<strong>Visualisierung</strong> BGRUND-Daten<br />

Ein- und Ausblenden,<br />

zusätzliche Schwarz-Weiß-Darstellung,<br />

Zoom, Verschieben,<br />

Sachdatenanzeige<br />

http://www.bgrundviewer.de/demo/alk.svg


Behr 17<br />

4 Zusammenfassung<br />

<strong>XML</strong> hat sich weltweit als Standard für den Austausch <strong>von</strong> Daten und für die Interoperabilität <strong>von</strong><br />

Anwendungen etabliert. Für Geoinformatik und Kartographie sind <strong>XML</strong>-<strong>basierte</strong> Sprachen wie GML<br />

SVG und andere <strong>von</strong> großer Bedeutung. Für das Zusammenwirken <strong>von</strong> Servern untereinander sowie<br />

für die Kommunikation zwischen Servern und Klienten sind <strong>XML</strong>-<strong>basierte</strong> Dienste und Protokolle<br />

wie WMS, WFS oder auch SOAP 13 etabliert und werden <strong>von</strong> den meisten <strong>GIS</strong>-Anbietern unterstützt.<br />

Im Bereich der Webkartographie liegen viele beispielhafte SVG-Anwendungen vor 14 . Ist SVG auch<br />

kein speziell für die Kartographie entwickeltes Format, so stehen die ECMAScript-gestützten<br />

Techniken wie Nutzung einer Übersichtskarte, Zoom und Pan oder Sachdatenanzeige mittlerweile zur<br />

Verfügung (Neumann 2003).<br />

Vektor- und raster<strong>basierte</strong>, raumbezogene Daten können einschließlich Sachdaten integriert<br />

übertragen und zur Anzeige gebracht werden. Exzellente Darstellung, auch beim Hineinzoomen,<br />

verbinden sich mit einem hohen Maß an Interaktivität, so dass diesem Standard eine weite Nutzung<br />

und Verbreitung zu wünschen ist.<br />

5 Literaturverzeichnis<br />

Andrew Watt, Chris Lilley et al. (2001): SVG Unleashed. SAMS, 1117 S., ISBN 0-672-32429-6<br />

Barth, Y<strong>von</strong>ne (2004): Nutzung <strong>von</strong> Servlets, JavaServer Pages, <strong>XML</strong> und XSL zur SVG – <strong>basierte</strong>n<br />

<strong>Visualisierung</strong> raumbezogener Daten. Unveröff. Diplomarbeit, HfT Stuttgart, http://www.carto.-<br />

net/papers/y<strong>von</strong>ne_barth/2004_y<strong>von</strong>ne_barth_dfkviewer.pdf [12.01.2005]<br />

Berners-Lee, T., Fielding, R., and L. Masinter (1998): Uniform Resource Identifiers (URI): Generic<br />

Syntax, RFC 2396, http://www.ietf.org/rfc/rfc2396.txt?number=2396 [07.02.2005]<br />

ECMA International (1999): ECMAScript Language Specification, 3rd edition. http://www.ecmainternational.org/publications/standards/ECMA-262.HTM<br />

[07.02.2005]<br />

ESRI 2004: Arc<strong>XML</strong> Programmer's Reference Guide 9.0. http://downloads.esri.com/support/-<br />

documentation/ims_/Arc<strong>XML</strong>9/Support_files/arcxmlguide.htm [07.02.2005]<br />

Fibinger, Iris, 2001: SVG: Untersuchung des <strong>XML</strong>-standards für zweidimensionale vektorgraphiken<br />

und Erstellung eines SVG-Tutorials, http://www.carto.net/papers/iris_fibinger-<br />

/2001_03_iris_fibinger_svg_diplomarbeit.pdf [23.03.2001]<br />

Graf, Gerald (2004): Vektordatenausgabe im Format SVG am Beispiel der Ausgabe <strong>von</strong> Thematischen<br />

Kartenfachdaten (TKFD). http://www.lv-bw.de/LVShop2/produktinfo/wir-ueber-uns/links/svg/-<br />

VektordatenAusgabeImFormatSVG_110105.pdf [07.02.2005]<br />

Held, Georg, Neumann, Andreas, Ueberschär, Nicole , Winter, André M. (2003): SVG für die<br />

Webkartographie -Aktuelles und Zukünftiges. http://www.carto.net/papers/svg/webmapping/-<br />

HeldNeumannUeberschaerWinter_2003.pdf [12.01.2005]<br />

Kettemann, Rainer (2005): <strong>GIS</strong> im Intra-/Internet und Web-Dienste für Geoinformationssysteme. in:<br />

Kettemann, Rainer, Coors, Volker (2005): Aktuelle Entwicklungen in der Geoinformatik.<br />

Tagungsband 5. Vermessungsingenieurtag, Hochschule für Technik, Stuttgart<br />

13 SOAP ist ein <strong>XML</strong>- und TCP/IP-<strong>basierte</strong>s Protokoll, mit dessen Hilfe Daten zwischen Systemen<br />

ausgetauscht und Remote Procedure Calls durchgeführt werden können.<br />

14 http://www.carto.net


Behr<br />

Kukofka, Petra (2004): Mobiles SVG. http://scale-a-vector.de/mobil.htm [11.02.2005]<br />

Kupke, Sebastian, Metzger, Tobias (2004): Informationsportal WM 2006 Realisation mittels PHP,<br />

MySQL, JavaScript und SVG. Unveröff. Diplomarbeit, HfT Stuttgart, http://www.stuttgart2006.net<br />

[07.02.2005]<br />

Lake, Ron, Burggraf, David, Milan Trninic (2004): Geography Mark-Up Language. John Wiley and<br />

Sons Ltd<br />

Mailänder, Thomas (2003): <strong>Visualisierung</strong> <strong>von</strong> ALK-Daten mittels SVG. Unveröff. Diplomarbeit, HfT<br />

Stuttgart, http://www.bgrundviewer.de/diplomarbeit.pdf [12.01.2005]<br />

MapInfo (2005): MapInfo Enterprise <strong>XML</strong> Protocol. http://extranet.mapinfo.com/common/docs/-<br />

mapxtreme-java_edition-4.5-readme-pdf-none-eng/xmlprot/ [07.02.2005]<br />

Meinike, Thomas (2005): SVG – Learning By Coding, http://www.datenverdrahten.de/svglbc/,<br />

[12.01.2005]<br />

Neumann, Andreas (2004): Using SVG for Online Digitizing and Editing of Geographic Data.<br />

Proceedings SVG Open Conference, Tokyo, 2004, http://www.svgopen.org/2004/papers/-<br />

abstract_neumann_svgopen_2004_svg_as_editing_environment/ [10.02.2005]<br />

Neumann, Andreas, Winter, Andréas M. (2003): Kartographie im Internet auf Vektorbasis, mit Hilfe<br />

<strong>von</strong> SVG nun möglich. http://www.carto.net/papers/svg/index_d.shtml [10.02.2005]<br />

Open Geospatial Consortium (2002): Web Feature Service Implementation Specification.<br />

https://portal.opengeospatial.org/files/?artifact_id=7176 [10.02.2005]<br />

Open Geospatial Consortium (2004): Web Map Service. http://portal.opengis.org/-<br />

files/?artifact_id=5316 [10.02.2005]<br />

Ordnance Survey (2005). Transforming GML (XSLT). http://www.ordnancesurvey.co.uk/oswebsite/-<br />

products/osmastermap/xml/gml.html [07.02.2005]<br />

W3C (2005): Document Object Model (DOM). http://www.w3.org/DOM/ [07.02.2005]<br />

W3C (1998): Synchronized Multimedia Integration Language (SMIL) 1.0 Specification, Deutsche<br />

Übersetzung. http://www.sunshine-company.de/w3c/REC-smil-19980615-DE.html [07.02.2005]<br />

W3C (2002): <strong>XML</strong> Path Language (XPath) Version 1.0, Deutsche, kommentierte Übersetzung.<br />

http://www.obqo.de/w3c-trans/xpath-de [07.02.2005]<br />

Williams, Juliana, Neumann, Andreas (2005): Manipulating SVG Documents Using ECMAScript<br />

(Javascript) and DOM. http://www.carto.net/papers/svg/manipulating_svg_with_dom_-<br />

ecmascript/index.shtml [07.02.2005]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!