XML-basierte Visualisierung von Geodaten ... - GIS-Management
XML-basierte Visualisierung von Geodaten ... - GIS-Management
XML-basierte Visualisierung von Geodaten ... - GIS-Management
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. < 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]