pondělí 21. července 2008

KML - formát pro geografická data

KML je formát souborů pro přenos geografických dat, používaný hlavně v programech Google Maps, Google Earth a Google Mobile. Zkratka KML znamená Keyhole Markup Language (Keyhole je název firmy původně vyrábějící dnešní program Google Earth) a jeho podporu najdeme dnes už ve většině geoprogramů.

KML se tedy dá s výhodou použít k přenosu dat mezi různými geosoftwary, a protože jsou to obyčejné XML soubory s nepříliš složitou strukturou, dají se i ručně upravovat. Tak se dá například vyřešit problém v Google My Maps spočívající v nemožnosti změnit pořadí bodů na mapě. Řešení (poněkud sekernickou metodou) je jednoduché: mapu z Google Maps stáhnout v KML formátu (zkopírovat odkaz "Zobrazit v Google Earth" a v adrese přepsat output=kml), pak upravit KML soubor a v Google Maps v editaci mapy dát Import, ze souboru, nahradit. (Mno, teď jsem byl upozorněn, že v My Maps jde měnit pořadí bodů přetahováním... Ale to určitě dřív nešlo!)

Zobrazení KML souboru na Google Maps je poměrně jednoduché: URL souboru vložíme do vyhledávacího políčka a Google Maps zobrazí obsah. Takto se dá udělat i odkaz ve formátu http://maps.google.com/?q=URL
Podrobnosti na Google Maps API blogu: KML on Google Maps. Tímto způsobem se dá zobrazit v Google Maps i např. export z Picasy.

KML soubor může být zobrazen i pomocí Google Maps API (tj. vložení mapy do vašich stránek), stačí soubor načíst do objektu GGeoXml a přidat ho do mapy jako overlay:
var gx = new GGeoXml("URL");
map.addOverlay(gx);
Pozor při vkládání KML souborů přímo ze serverů Googlu, když není v url zadaný parametr oe=UTF8, nefungují KML, ve kterých jsou neanglické znaky.
Podrobnosti má Google Maps API blog: KML and GeoRSS Support včetně ukázky. Ke GGeoXml se můžou hodit pomocné funkce.

gekmllib je javovská knihovna pro manipulaci (čtení, vytváření a manipulace s KML), která ač je teprve verzi 0.3, vypadá (až na pár drobností) poměrně použitelně. Dalšími knihovnami jsou kmlframework a XStreamKML.

Nevím jak vy, ale já dneškem končím s uchováváním svých geo dat v Excelech a CSV souborech... :)

2 komentáře:

  1. Teď jsi mě zachránil: od léta mám na Pikase nějaké fotky umístěné do Austrálie a nemohl jsem přijít na to které. Pikasa sice přehledovou mapku má, ale na ikony nejde klikat. Díky RSS vloženému do Gůgl map jsem to měl hned.

    Kromě KML je tu ještě GPX (GPS Exchange Format), ale s tím se na webu nepracuje tak dobře. Gůgl tlačí KML.

    OdpovědětVymazat
  2. Pouzivat pro geodata xls? Kdo to vymueslil??

    OdpovědětVymazat