Anzeige
Verschiedenes KML-Dateiformat
KML-Dateien werden gespeichert in XML-Format und ursprünglich für die Keyhole-Mapping-Software entwickelt. In 2004 Google kaufte Keyhole Inc., weshalb KML-Dateien jetzt stark von den Kartendiensten von Google verwendet werden - Google Maps und Google Earth.
Technische Informationen zu KML-Dateien
KML-Dateien enthalten Informationen, die im XML-Format gespeichert sind. Diese Informationen umfassen sowohl Bilder als auch einfachere Daten wie Linien, Polygone und Punkte. Solche Dateien werden verwendet, um Informationen über einen bestimmten Ort auf einer Karte zu speichern. Mit einer KML-Datei kann der Benutzer nicht nur einen Ort auf einer Karte markieren, sondern auch Inhalte (im HTML-Format), Texturen und Ansichten aus verschiedenen Blickwinkeln hinzufügen. Um KML-Dateien in Google Maps zu öffnen, ist lediglich die KML-Datei selbst erforderlich, die im Internet gehostet wird. Über einen separaten Erweiterungslink in der Suchleiste von Google Maps wird es geöffnet.
Zusätzliche Informationen zum KML-Format
Dateierweiterung | .kml |
Dateikategorie | |
Beispieldatei | (2,05 KiB) |
Verwandte Programme | Blender (Windows, Mac & Linux) Blue Marble Geographics Global Mapper (Windows) ESRI ArcGIS for Desktop (Windows) Google Earth (Windows, Mac und Linux) Google Maps (Internet) Merkaartor (Windows, Mac & Linux) Schlüsselloch PRO (Windows & Mac) |
KML ist ein Dateiformat, das verwendet wird, um geografische Daten in einem Earth-Browser wie Google Earth anzuzeigen. KML verwendet eine Tag-basierte Struktur mit verschachtelten Elementen und Attributen und basiert auf dem XML-Standard. Bei allen Tags wird zwischen Groß- und Kleinschreibung unterschieden und sie müssen genau so erscheinen, wie sie in der KML-Referenz aufgelistet sind. Die Referenz gibt an, welche Tags optional sind. Innerhalb eines bestimmten Elements müssen Tags in der in der Referenz angegebenen Reihenfolge erscheinen. Wenn Sie neu bei KML sind, erkunden Sie dieses Dokument und die begleitenden Beispieldateien ( SamplesInEarth), um sich mit der grundlegenden Struktur einer KML-Datei und den am häufigsten verwendeten Tags vertraut zu machen. Der erste Abschnitt beschreibt Funktionen, die mit der Google Earth-Benutzeroberfläche erstellt werden können. Zu diesen Features gehören Ortsmarkierungen, Beschreibungen, Boden-Overlays, Pfade und Polygone. Der zweite Abschnitt beschreibt Funktionen, die das Authoring von KML mit einem Texteditor erfordern. Beim Speichern einer Textdatei mit a .kml oder .kmz Erweiterung, Google Earth-Browser wissen, wie sie angezeigt wird. |
Tipp: Um den KML-"Code" für eine Funktion in Google Earth anzuzeigen, können Sie einfach mit der rechten Maustaste auf die Funktion im 3D-Viewer von Google Earth klicken und auswählen Kopieren. Fügen Sie dann den Inhalt der Zwischenablage in einen beliebigen Texteditor ein. Das in Google Earth angezeigte visuelle Merkmal wird in sein KML-Textäquivalent konvertiert. Experimentieren Sie unbedingt mit dieser Funktion.
Eine Erörterung der Verwendung einiger Schlüsselfunktionen in KML finden Sie im Entwicklerhandbuch .
Inhaltsverzeichnis
Grundlegende KML-Dokumente
Die einfachste Art von KML-Dokumenten sind solche, die direkt in Google Earth erstellt werden können, d. h. Sie müssen keine KML-Dateien in einem Texteditor bearbeiten oder erstellen. Ortsmarkierungen, Boden-Overlays, Pfade und Polygone können alle direkt erstellt werden bei GoogleEarth.
Ortsmarken
Eine Ortsmarke ist eine der am häufigsten verwendeten Funktionen in Google Earth. Es stellt eine Position auf der Erdoberfläche mit einer gelben Stecknadel als Symbol dar. Die einfachste Ortsmarkierung enthält nur ein
Aktivieren Sie beispielsweise den Ordner „Absolute Positioning: Top left“ in der KML-Beispieldatei und Sie sehen eine Bildschirmüberlagerung oben links im Ansichtsfenster. Diese wurde mit folgendem KML-Code erstellt:
Die Positionierung wird gesteuert, indem ein Punkt im Bild abgebildet wird, der durch angegeben wird
Sehen Sie sich die anderen Beispiele im Ordner an, um zu sehen, wie es möglich ist, andere feste Positionen zu erhalten und Bilder zu erstellen, deren Größe sich dynamisch an die Bildschirmgröße anpasst. (Beachten Sie, dass xEinheiten und Einheiten kann auch als "Pixel" für eine präzise Steuerung angegeben werden.) Weitere Einzelheiten finden Sie in der KML 2.2-Referenz .
Netzwerk-Links
Ein Netzwerklink enthält a Element mit einem
Das
- Eine Bilddatei, die von Symbolen in Symbolstilen, Bodenüberlagerungen und Bildschirmüberlagerungen verwendet wird
- Eine Modelldatei, die in der
Element - Eine KML- oder KMZ-Datei, die von einem Network Link geladen wird
Die angegebene Datei kann entweder eine lokale Datei oder eine Datei auf einem Remote-Server sein. In ihrer einfachsten Form sind Netzwerklinks eine nützliche Methode, um eine große KML-Datei in kleinere, besser zu verwaltende Dateien auf demselben Computer aufzuteilen.
Bisher erforderten alle unsere Beispiele, dass der KML-Code vom lokalen Computer an Google Earth übermittelt wurde. Netzwerkverbindungen geben Ihnen die Möglichkeit, Inhalte von einem entfernten Standort aus bereitzustellen, und werden häufig verwendet, um Daten an eine große Anzahl von Benutzern zu verteilen. Auf diese Weise müssen die Daten, wenn sie geändert werden müssen, nur am Ursprungsort geändert werden, und alle Benutzer erhalten automatisch die aktualisierten Daten.
CGI-Skripterstellung für KML
Zusätzlich zum Verweisen auf Dateien, die statische Daten enthalten, ist eine Netzwerkverbindung vorhanden
Für die Bereitstellung von KML über ein Netzwerk-CGI sind zwei Dinge erforderlich:
Wenn ein Aufruf vom Client (Google Earth) an den Server erfolgt, muss der Server (1) einen Antwortcode von HTTP 200 zurückgeben und (2) den Inhaltstyp der Antwort auf text/plain oder application/vnd.google setzen -erde.kml+xml.
Die Antwort muss eine gültige KML-Datei sein. Bei komplexen Anwendungen ist die richtige Fehlerbehandlung sehr wichtig.
Tipp: Eine einfache Möglichkeit, Fehler zu behandeln, besteht darin, den Fehler des Servers als Text für einen Ordnernamen zu analysieren. Beispielsweise könnten Sie den Server zurückgeben lassen
Die folgenden Beispiele verwenden Python, sie sind jedoch in jeder anderen Skriptsprache gleichermaßen gültig.
Generieren einer zufälligen Ortsmarke
Das folgende Python-Skript generiert zufällige ganzzahlige Werte für Breite und Länge und fügt dann diese Werte in die ein
#!/usr/bin/python import random latitude = random.randrange(-90, 90) longitude = random.randrange(-180, 180) kml = ("\n" "
Hier ist ein Beispiel für eine KML-Datei, die einen Netzwerk-Link enthält, der dieses Python-Skript lädt:
Ortsmarkierung bei jedem Anruf
Ansichtsbasierte Aktualisierungsabfragen
Eine Standard-Netzwerkverbindung ist eine unidirektionale Verbindung: Daten fließen nur vom Server zu Google Earth. Die ansichtsbasierte Aktualisierung ermöglicht eine bidirektionale Kommunikation. Wenn die ansichtsbasierte Aktualisierung aktiv ist, gibt Google Earth die Ansichtskoordinaten zu einem bestimmten Zeitpunkt an den Server zurück. Das kann jeder sein n Sekunden, Minuten oder Stunden oder wenn eine bestimmte Zeit verstrichen ist, seit sich die Ansicht nicht mehr bewegt. Sehen
Die Koordinaten werden über ein HTTP GET an den Server zurückgesendet, das die Koordinaten wie folgt anhängt (dies ist die standardmäßige Bounding-Box-Information):
GET /path/to/sever/script/query?BBOX=HTTP/1.1
Wenn die Anfrage gestellt wurde, während der Benutzer auf San Francisco blickte, könnten die Koordinaten wie folgt aussehen:
GET /path/to/server/script/query?BBOX=-122.497790,37.730385,-122.380087,37.812331 HTTP/1.1
Diese Funktion kann für einige sehr kreative Anwendungen verwendet werden, aber um Ihnen den Einstieg zu erleichtern, wird unten ein einfaches Beispiel vorgestellt.
Verfolgen Sie einen Punkt direkt unter Ihrer Sicht
Das folgende serverseitige Python-Skript analysiert die von Google Earth gesendete Antwortnachricht und antwortet mit einer Ortsmarkierung in der Mitte des Bildschirms. Jedes Mal, wenn der Netzwerklink aktualisiert wird, wird eine neue Ortsmarke generiert.
#!/usr/bin/python import cgi url = cgi.FieldStorage() bbox = url["BBOX"].value bbox = bbox.split(",") west = float(bbox) south = float(bbox) east = float(bbox) north = float(bbox) center_lng = ((east - west) / 2) + west center_lat = ((north - south) / 2) + south kml = ("\n" "
Und hier ist die KML für den Network Link, der das Python-Skript lädt:
in die Mitte Ihres Bildschirms und geben Sie eine Ortsmarke zurück.
Das in diesem Beispiel dargestellte Prinzip kann für einige sehr komplexe Anwendungen verwendet werden. Wenn Sie beispielsweise über eine Datenbank mit geografischen Informationen verfügen, können Sie die Koordinaten des Betrachters extrahieren, die Datenbank für die ansichtsspezifischen Daten aufrufen und sie als KML an Google Earth zurückgeben.
3 KML-MIME-Typen
Bei der Beantwortung einer Anfrage von Google Earth (oder einem anderen Earth-Browser) muss ein KML-Server bestimmte Regeln befolgen, damit Google Earth seine Antworten richtig interpretieren kann.
Bei Erfolg muss der Server einen Antwortcode von HTTP 200 zurückgeben und den Inhaltstyp der Antwort auf einen geeigneten MIME-Typ setzen, wie hier beschrieben.
Google Earth liest KML- und KMZ-Dateien. Der MIME-Typ für KML-Dateien ist
- application/vnd.google-earth.kml+xml
Der MIME-Typ für KMZ-Dateien ist
- application/vnd.google-earth.kmz
Fügen Sie für Apache diese Zeilen zu der hinzu httpd.conf Datei:
- AddType application/vnd.google-earth.kml+xml .kml
- AddType application/vnd.google-earth.kmz .kmz
Einzelheiten zum Einrichten von MIME-Typen auf Microsofts IIS finden Sie in der Microsoft-Dokumentation.
Der Text der Antwort muss gültige KML-Daten enthalten, einschließlich der XML-Deklaration (). Wenn der Server ungültiges KML zurückgibt, wird Network Link angehalten, deaktiviert und eine Fehlermeldung ausgegeben.