Google Maps ja Earth

Formaatinmuuntimet ja yhteydet muihin ohjelmiin
Avatar
mikko
Ylläpitäjä
Viestit: 297
Liittynyt: 10 Loka 2008, 20:56
Organisaatio: 3D-system
Nimi: Mikko Syrjä
Paikkakunta: Vantaa

Google Maps ja Earth

Viesti Kirjoittaja mikko » 08 Touko 2009, 11:40

Googlen karttasysteemit käyttävät tiedostoformaattia nimeltä KML (http://code.google.com/apis/kml/documentation/). Kyseessä on yksinkertainen XML-pohjainen formaatti pisteiden ja reittien siirtämiseen esimerkiksi Google Earth -ohjelmaan (http://earth.google.com/) tai Google Maps -karttojen (http://maps.google.fi/) päälle selaimessa.

Versiosta 5.4 lähtien voi GPX-muuntimella ja GPSBabel-ohjelmalla siirtää tietoa myös Googleen. Tätä varten on määriteltävä määriteltävä matematiikkamuunnos esimerkiksi KKJ3-koordinaatistosta Googlen käyttämään WGS84-koordinaatistoon sekä GPX-kirjoitusmuunnin erikoisasetuksella BabelFormat=kml. Tarkempi kuvaus määrittelystä löytyy tuolta GPX-viestiketjusta viewtopic.php?f=15&t=29&sid=a400feb9d40 ... 5a41bb2480. Muuntimen asetuksiin laitetaan lisäksi tiedostopäätteeksi *.kml ja nimeksi vaikka Google.

Muuntimella kirjoitettu tiedosto voidaan avata suoraan Google Earth -ohjelmaan, joka zoomautuu siihen automaattisesti. Esimerkiksi pieni tiedostonpala Tikkurilasta (http://www.3d-system.net/files/tikkurila.kml) näkyy hyvin ilmakuvan päällä.

Google Maps on hieman mutkikkaampi juttu, koska selainpohjaisena sinne ei voi tiedostoja viedä suoraan, vaan ne on ensin laitettava jonnekin nettipalvelimelle. Systeemiä voi testata foorumin nettipalvelimella olevalla tikkurila.kml-tiedostolla. Ensin mennään Google Maps -pääsivulle, laitetaan tuon tiedoston koko osoite (http://www.3d-system.net/files/tikkurila.kml) hakukenttään ja painetaan karttahakua. Google Maps hakee tiedoston ja näyttää sen kartan päällä.

Painamalla yläkulmasta Linkki saadaan suora URL karttaan:

http://maps.google.fi/maps?f=q&source=s ... =UTF8&z=17

Karttakuva on melkoisen simppeli, johtuen GPSBabelin rajoituksista ja oletusasetuksista, jotka on tarkoitettu lähinnä käsittelemään reittejä, ei kaavakarttaa. KML-formaatti itse kyllä ymmärtäisi viivanleveyksiä ja värejä. Jos tälle systeemille löytyy kiinnostusta ja yleensäkin jotain järkevää käyttöä, niin voin jossain vaiheessa tehdä erillisen KML-formaatinmuuntimen, joka osaisi hakea kuvaustekniikan 3D-Winin kooditiedostosta.

Google Mapsin suunnittelemia ajoreittejä voi myös siirtää 3D-Winiin taiteviivoiksi. Homma vaatii pientä kikkailua URL:ien kanssa. Ensin annetaan Googlen suunnitella reitti, vaikkapa Vantaa-Tampere. Sitten painetaan yläkulmasta Linkki ja kopioidaan URL leikepöydän kautta toiseen selainikkunaan. Kun nyt URL:n perään lisätään käsin teksti &output=kml ja painetaan enter, niin selain pyytää tallentamaan maps.kml nimisen tiedoston johonkin hakemistoon. Tiedosto sisältää KML-muodossa reitin:

Koodi: Valitse kaikki

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0"><Document><name>Vantaa - Tampere</name>
<Style id="roadStyle"><LineStyle><color>7fcf0064</color><width>6</width></LineStyle></Style>
<Snippet><![CDATA[<font size=+1>
<a href="http://maps.google.fi/maps?f=d&source=s_d&saddr=vantaa&daddr=tampere&hl=fi&geocode=&mra=ls&sll=62.593341,27.575684&sspn=13.818558,34.716797&ie=UTF8&z=8">Tulostettava näkymä</a></font>]]>
</Snippet>
<Placemark>
<name>Kulje suuntaan länsi väylää Lummekuja suuntaan Kielotie</name>
<description><![CDATA[kulje 0,1&#160;km]]></description>
<address>Vantaa</address>
<styleUrl>root://styleMaps#default+nicon=0x406+hicon=0x416</styleUrl>
<Point><coordinates>25.040290,60.294350,0</coordinates></Point>
<LookAt><longitude>25.040290</longitude><latitude>60.294350</latitude><range>100.000000</range><tilt>45.000000</tilt><heading>286.233978</heading></LookAt>
</Placemark>
...
<Placemark><name>Reitti</name>
<description><![CDATA[Etäisyys: 174&#160;km (noin 1 h 40 min)<br/>Karttatiedot &#169;2009 Tele Atlas]]></description>
<GeometryCollection>
<LineString><coordinates>
25.040290,60.294350,0.000000 25.038280,60.294640,0.000000
...
23.766700,61.497020,0.000000 23.764860,61.498020,0.000000 
</coordinates></LineString>
</GeometryCollection>
<styleUrl>#roadStyle</styleUrl>
</Placemark>
</Document>
</kml>
Edellistä esimerkkiä on hieman kevennetty, mutta siitä näkee tiedoston rakenteen: ensin ajo-ohjeet ja sitten reitin koordinaatit. Täydellisessä reitissä näyttäisi olevan 922 pistettä, moottoritiellä harvemmassa ja rampeissa tiheämmin.

Reitti voidaan GPX-muuntimella lukea sisään. Lukupuolen Google-muunnin määritellään samoin kuin kirjoituspuoli: funktioksi Gpx, nimeksi Google, tiedostopäätteeksi *.kml, BabelProgram-asetukseen ohjelma, BabelFormat-asetukseen kml ja lopuksi matematiikkamuunnos, joka tässä tapauksessa pitää luonnollisesti olla suuntaan WGS84 -> KKJ3.