Co to jest plik KML?
KML, Keyhole Markup Language) zawiera informacje geoprzestrzenne w notacji XML. Pliki zapisane w formacie KML można otwierać w aplikacjach systemu informacji geograficznej (GIS), o ile go obsługują. Wiele aplikacji zaczęło zapewniać obsługę formatu plików KML po tym, jak został on przyjęty jako międzynarodowy standard. KML wykorzystuje strukturę opartą na znacznikach z zagnieżdżonymi elementami i atrybutami. We wszystkich tagach rozróżniana jest wielkość liter, a kolejność tych tagów zgodnie z dokumentacją KML jest ważna do przestrzegania.
Krótka historia
KML został pierwotnie opracowany do użytku z Google Earth, który był pierwotnie znany jako Keyhole Earth Viewer. KLM został przyjęty jako międzynarodowy standard w 2008 roku przez Open Geospatial Consortium w 2008 roku. Ponieważ format został opracowany do użytku z Google Earth, wyróżnia się tym, że jako pierwszy wyświetla i edytuje pliki KML. Z biegiem czasu pojawia się coraz więcej projektów, które zapewniają obsługę formatów plików KML, w tym kilka interfejsów API w różnych językach.
Specyfikacje formatu pliku KML
Odniesienie KML to kompletny przewodnik dotyczący odsyłaczy w celu uzyskania pełnych specyfikacji formatu pliku. Standardowy plik KML składa się z:
- Oznaczenia miejsc
- Opisowe znaczniki miejsc HTMLin
- Nakładki naziemne
- Ścieżki
- Wielokąty
Oprócz tego zaawansowana wersja pliku KML może mieć:
- Style dla geometrii
- Style podświetlonych ikon
- Nakładki ekranowe
- Linki sieciowe
Każdy element KML zawiera informacje o długości geograficznej, które umożliwiają geolokalizację informacji zawartych w pliku. Mogą jednak istnieć dodatkowe parametry, takie jak kurs, wysokość i nachylenie.
Oznaczenia miejsca
Jest używany do reprezentowania pozycji na powierzchni Ziemi i jest identyfikowany przez element. Poniżej przedstawiono przykład reprezentacji oznaczenia miejsca w pliku KML.
<kml xmlns#"http://www.opengis.net/kml/2.2">
<Placemark>
<name>Simple placemark</name>
<description>Attached to the ground. Intelligently places itself
at the height of the underlying terrain.</description>
<Point>
<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>
</Point>
</Placemark>
</kml>
Opisowy kod HTML w oznaczeniach miejsc
Z oznaczeniem miejsca można powiązać dodatkowe informacje, które dodatkowo poprawiają reprezentację oznaczenia miejsca. Takie informacje obejmują łącza, rozmiary czcionek, style i kolory. Ponadto obejmuje również wyrównanie tekstu i tabele, które mają być częścią oznaczenia miejsca.
<kml xmlns#"http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>CDATA example</name>
<description>
<![CDATA[
<h1>CDATA Tags are useful!</h1>
<p><font color#"red">Text is <i>more readable</i> and
<b>easier to write</b> when you can avoid using entity
references.</font></p>
]]>
</description>
<Point>
<coordinates>102.595626,14.996729</coordinates>
</Point>
</Placemark>
</Document>
</kml>
Nakładki podłoża
Reprezentują one nakładanie się obrazu na powierzchnię Ziemi. The elment zawiera łącze do pliku obrazu nakładki.
<kml xmlns#"http://www.opengis.net/kml/2.2">
<Folder>
<name>Ground Overlays</name>
<description>Examples of ground overlays</description>
<GroundOverlay>
<name>Large-scale overlay on terrain</name>
<description>Overlay shows Mount Etna erupting
on July 13th, 2001.</description>
<Icon>
<href>https://developers.google.com/kml/documentation/images/etna.jpg</href>
</Icon>
<LatLonBox>
<north>37.91904192681665</north>
<south>37.46543388598137</south>
<east>15.35832653742206</east>
<west>14.60128369746704</west>
<rotation>-0.1556640799496235</rotation>
</LatLonBox>
</GroundOverlay>
</Folder>
</kml>
Ścieżki
Ścieżki są reprezentowane przez element, który jest zbiorem par lat-długości. Korzystając z nich, w programie Google Earth można utworzyć wiele różnych typów ścieżek.
<kml xmlns#"http://www.opengis.net/kml/2.2">
<Document>
<name>Paths</name>
<description>Examples of paths. Note that the tessellate tag is by default
set to 0. If you want to create tessellated lines, they must be authored
(or edited) directly in KML.</description>
<Style id#"yellowLineGreenPoly">
<LineStyle>
<color>7f00ffff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Placemark>
<name>Absolute Extruded</name>
<description>Transparent green wall with yellow outlines</description>
<styleUrl>#yellowLineGreenPoly</styleUrl>
<LineString>
<extrude>1</extrude>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>
<coordinates> -112.2550785337791,36.07954952145647,2357
-112.2549277039738,36.08117083492122,2357
-112.2552505069063,36.08260761307279,2357
-112.2564540158376,36.08395660588506,2357
-112.2580238976449,36.08511401044813,2357
-112.2595218489022,36.08584355239394,2357
-112.2608216347552,36.08612634548589,2357
-112.262073428656,36.08626019085147,2357
-112.2633204928495,36.08621519860091,2357
-112.2644963846444,36.08627897945274,2357
-112.2656969554589,36.08649599090644,2357
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
Odniesienia przestrzenne w pliku KML
Informacje zawarte w dowolnym pliku geoprzestrzennym na temat lokalizacji geograficznych mogą mieć różne znaczenia bez informacji o odniesieniach przestrzennych. Domyślnie odniesienia przestrzenne pliku KML są zdefiniowane przez Światowy System Geodezyjny z 1984 r., WGS84.