Geografische XML-Daten

KML, GML, GPX zur Codierung von Geo-Daten

intro links intro rechts
XML XML Extended Markup Language
GoogleEarth Das populäre Geografie-Programm verwendet KML
Placemark Punkt-Koordinaten
LookAt Daten einer Ansicht (Blickrichtung)
Links Ausgewählte Links zum Thema 'Geo-XML'

Kapitel

   
   

GoogleEarth auf Windows

Diese Datei enthält die individuellen Daten der einzelnen GoogleEarth User:
C:\Dokumente und Einstellungen\Ich\Anwendungsdaten\Google\GoogleEarth\myplaces.kml
Ersetzen sie 'Ich' durch den gewünschten Windows User-Namen.
Legen sie vor Experimenten mit dieser Datei unbedingt eine Sicherungs-Kopie an und schalten sie das Programm GoogleEarth während dieser Zeit ab.
Diese Datei enthält nur einfachen lesbaren Text (text/plain) und lässt sich daher mit jedem Text-Editor ansehen oder ändern, z.B. mit notepad.exe oder besser mit Notepad++ (kostenfrei). Der Text ist nach → XML-Regeln aufgebaut und verwendet die Elemente des KML-Standards.

Das Muster rechts zeigt einen typischen Aufbau. Reale Dateien enthalten wesentlich mehr Daten, da einige der KML-Elemente oft wiederholt werden. Ausgewählte Details:
Jedes Element (mit Ausnahme der XML-Deklaration in der 1. Zeile) muss abgeschlossen werden, d.h. es beginnt mit <element> und endet mit </element>
Jedes Elements kann beliebig viele andere Elemente enthalten. Die KML-Syntax bestimmt, welche Sub-(Child)-Elemente ein bestimmtes Element enthalten darf.
Die KML-Syntax bestimmt, welche Child-Elemente unbedingt vorhanden sein müssen, und welche optional enthalten sein können.
Die KML-Syntax bestimmt, ob ein Element nur einmal enthalten sein darf, oder ob es (wie z.B. <Placemark></Placemark>) beliebig oft wiederholt werden darf.

Der Inhalt einiger Elemente (z.B. <Placemark>...</Placemark>) wurde zur besseren Übersicht durch ... Punkte ersetzt.

Die mit GoogleEarth selbst gesetzten PlaceMarks sind im Element (Ordner, <Folder>) 'Meine Orte' enthalten. Man kann diese Daten mit jedem Text-Editor ändern oder ergänzen.
Tipp: Ändern sie keine Elemente, deren Bedeutung sie nicht kennen und verstehen.
Aufbau einer XML+KML Datei myplaces.kml von geografischen Daten:
<?xml version="1.0" encoding="UTF-8"?>
<kml...>
<Document>
<name>default_myplaces_de.kml</name>
open>1</open>
<Style>...</Style>
<StyleMap>...</StyleMap>
<Folder>
<name>Meine Orte</name>
open>1</open>
<Style>...</Style>
<Folder>
<name>Sightseeing</name>
<visibility>0</visibility>
<description>...</description>
<Placemark>...</Placemark>
</Folder>
<Placemark>...</Placemark>
</Folder>
</Document>
</kml>
   

KML-PlaceMark

Placemarks sind für die Praxis die wichtigsten KML-Elemente. Das Beispiel rechts zeigt eine KML-Datei mit 3 Placemarks.
Jede einschlägige Software ist in der Lage, diese Daten zu verarbeiten. Das macht KML-Daten zu einer allgemein verwendbaren Standard-Drehscheibe. Unabhängig davon gibt es zahlreiche Programme, um KML-Daten in andere Formate umzuwandeln.

Koordinaten

Die Daten eines Placemarks beschreiben einen Punkt an der Erdoberfläche mit geografischen Koordinaten:
Name
Geografische Länge östl. Greenwich (lon) in Dezimalgrad.
Geografische Breite nördl. Äquator (lat) in Dezimalgrad.
Höhe über dem Meeresspiegel (alt, optional) in Metern.
Diese Daten sind in genau einem <coordinates>-Element enthalten.

Als Gleitkomma-Zeichen wird ein Punkt (!) verwendet, als Trennzeichen ein Beistrich (comma).
Als Zeichensatz wird → UTF-8 verwendet. Im Beispiel ist 'Zürich' zur besseren Lesbarkeit falsch (!), d.h. nach → ISO-8859-1 (Latin-1) codiert.
Beispiel: Placemarks für Berlin, Wien und Zürich:
<Placemark>
<name>Berlin</name>
<description>Berlin</description>
<altitudeMode>relativeToGround</altitudeMode>
<Point>
<coordinates>13.400,52.517,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Wien</name>
<description>Wien</description>
<altitudeMode>absolute</altitudeMode>
<Point>
<coordinates>16.374,48.209,171</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Zürich</name>
<description>Zürich</description>
<altitudeMode>absolute</altitudeMode>
<Point>
<coordinates>8.55,47.367,434</coordinates>
</Point>
</Placemark>

Höhe (Altitude)

Die Angabe der Höhe (3. Wert im Element <coordinates>) ist optional.
Sie erfolgt in Meter über dem Meeresspiegel, bezogen auf das Standard Erdmodell (Geoid) WGS84. Viele Staaten verwenden eine etwas abweichende eigene Definition.
Bei bekannter Höhe kann man optional dieses Element angeben:
<altitudeMode>absolute</altitudeMode>
Wenn die absolute Höhe unbekannt sit, kann man sich auf die 'Umgebung' beziehen und die relative Höhe angeben:
<altitudeMode>relativeToGround</altitudeMode>
Wenn die Höhe unbekannt ist, setzt man ihren Zahlenwert 0 und lässt das Element <altitideMode> weg oder setzt es
<altitudeMode>clampToGround</altitudeMode>
x

MIME-Type

KML-Daten enthalten nur einfachen Text und lassen sich deshalb auf jedem Medium transportieren oder speichern, wobei sie zweckmäßig (ZIP)-komprimiert werden.
Das Format KMZ ist eine komprimierte KML-Datei im Format ZIP. Sie kann vom Client unmittelbar eingelesen werden. Der MIME-Typ für KML-Dateien lautet application/vnd.google-earth.kml+xml
bzw.
application/vnd.google-earth.kmz
für KMZ-Dateien.

Zeichensatz

Als → Zeichensatz wird wie in fast allen XML-Anwendungen → Unicode in der Codierung → UTF-8 verwerndet. Der Text sollte daher keine kultur-spezifischen Sonderzeichen (Umlaute, ß, €, ...) enthalten. Das betrifft insbesondere die Elemente <name> und <description>.
Tragen sie nur ASCII-Zeichen ein (z.B. 'Zuerich') oder sorgen sie für normgerechte UTF-8 Codierung.
Manche Programme korrigieren falsch codierte Texte oder versuchen es zumindest. Der im Beispiel falsch (!) codierte Text 'Zürich' funktioniert meistens, wenn im Betriebssystem oder im Programm ein lokaler Zeichensatz (hier: → ISO-8859-1) angegeben wurde. Darauf sollte man sich allerdings nicht verlassen !

Erd-Modell

Als Erd-Modell (Geoid, Geodätisches Referenzsystem) wird das für den globalen Gebrauch optimierte World Geodetic System 1984 (WGS84) verwendet. Manche Staaten (vor allem solche mit langer Ingenieur-Tradition) verwenden noch andere, national optimierte Modelle. Deren Koordinaten lassen sich mit einschlägiger Software umrechnen.
*
x x

LookAt

Ein <LookAt>-Element beschreibt den Blick einer hypothetischen Camera. Versetzen sie sich in die Rolle eines Fotografen an einem fixen Standort - oder besser in einem Flugzeug. Es gibt 2 einfache Möglichkeiten, um die Camera auf ein bestimmtes Ziel zu richten (Richtung, Höhe). Dazu kommt noch eine 3. wenig realistische Möglichkeit (Rollen).

Richtungs-Winkel

Man kann sich selbst um die senkrechte Achse (in Richtung zum Erdmittelpunkt) drehen.
In diesem Fall ändert sich die Himmelsrichtung, in welche die Camera blickt.

Das Element <heading> beschreibt die Drehung um die Senkrechte (Richtungs-Winkel) in Grad 0..360, gemessen von Nord (heading=0) über Ost (heading=90), Süd, West.
In der Astronomie wird diese Richtung mit Azimuth bezeichnet.
Standard für alle Landkarten ist heading=0, da sie normalerweise nach Norden ausgerichtet sind.

Höhen-Winkel

Man kann die Camera um die horizontale Achse drehen.
In diesem Fall blickt die Camera weiter nach unten oder nach oben.

Das Element <tilt> beschreibt die Drehung um die Waagrechte (Höhen-Winkel), in Grad 0..180, gemessen von Senkrecht nach unten (tilt=0) über Horizont (tilt=90) bis Senkrecht nach oben (tilt=180).
Standard für Landkarten ist tilt=0, da man dabei einen virtuellen Blick nach unten auf die Erdoberfläche hat.

Roll-Winkel

Es ist möglich, die Camera um die Blickrichtung zu drehen. In diesem Fall wird der Horizont geneigt. Diese (optionale) Variante wird kaum verwendet.

Das optionales Element <roll> beschreibt eine Drehung um die Blickrichtung in Grad -180..+180. Standard ist roll=0 - in diesem Fall bleibt der Horizont unverändert.
Standpunkt
Ein menschlicher Fotograf befindet sich auf einem fixen Punkt und kann mit der Camera die oben genannten Richtungs-Änderungen durchführen. Daraus ergeben sich die jeweils anvisierten Punkte.
Diese Methode wird von KML nicht verwendet !

Zielpunkt

Ein <LookAt>-Element orientiert sich an den Koordinaten des anvisierten Punkts (!) und berechnet daraus den Standort der Camera.
Dazu braucht man folgende Angaben:
Zielpunkt: Geografische Koordinaten des anvisierten Punkts: <longitude>, <latitude>, <altitude>
Blickrichtung der Camera: <heading>, <tilt>, <roll>
Die Entfernung der Camera <range>, gemessen in Meter entlang der Sichtlinie.
Ein <LookAt>-Element beschreibt die Blick-Richtung (Camera).

Die Elemente <longitude> und <latitude> beschreiben die geografischen Koordinaten des anvisierten Punktes in Grad.

Ein optionales Element <altitude> beschreibt die Höhe des anvisierten Punktes (!) in Meter über dem Meer.

Das obligatorische Element <range> beschreibt die Entfernung der Camera vom anvisierten Punkt.in Metern.
<Placemark>
<name>Google Earth - New Placemark</name>
<description>Some Descriptive text.</description>
<LookAt>
<longitude>16.374</longitude>
<latitude>48.209</latitude>
<range>440.0</range>
<tilt>10.0</tilt>
<heading>6.0</heading>
</LookAt>
<Point>
<coordinates>16.374,48.209,0</coordinates>
</Point>
</Placemark>
Wien:
range=43km, tilt=0
x
x x
x x

Kapitel

Google-Link:
http://maps.google.co.uk/maps?ll=39.108668,-76.771903&spn=0.006722,0.015166&t=k
ll-> lonlat, gefolgt von einem Datenpaar lon,lat
spn -> ? Datenpaar x,y
t