Friday, July 8, 2011

How to convert Google Maps to GPX file

The best tool to do that is the bookmarklet GMapToGPX. But after recent (June 2011) changes in Google Maps,  it stopped to work with maps created as "My Places" (aka "My Maps"). Until the author updates the bookmarklet (I hope it will be possible with the new Google Maps), there is a simple workaround (I found it here):

  • Take a link of your map from the Google Maps web site. This link is either directly available under a small "chain" image (works in Google Chrome browser but not in my Firefox), or in the text of email created by the "send" image (works in all browser I have tried)...
  • ...and add to it: "&output=kml". Then convert, as with GMapToGPX before, the resulting KML file to a GPX file using an excellent GPSVisualizer.
The created KML file may have (usually has) some (formatting) HTML tags in its waypoint description fields. The GPSVisualizer converts correctly these tags into formally correct GPX file. For example, changing all "<" characters to sequences of "&lt;". But very often these HTML formatting tags are not recognized by the software using such GPX file (e.g. Maverick map software on Android), and are displayed as normal text which does not look correct. Therefore, I am using a small Perl script that first removes these tags from the KML file and only after that I fill the updated KML file into GPSVisualizer. The script "update-kml.pl"can be downloaded from here and one can use it this way:
perl update-kml.pl < input.kml > output.kml

Upravena sablona pro exportovani z GeoGetu

GeoGet je databaze vybranych geokesi, pripadne s pridanymi souradnicemi dalsich waypointu, nejcasteji se jedna o finalni souradnice vylustenych mysterek. Aby se tyto souradnice dostaly do vaseho GPS, je nutno je exportovat do GPX souboru a ten pak nahrat do GPS (nechme ted stranou trochu slozitejsi moznost s tzv. POI soubory).

GeoGet nabizi nekolik moznosti, jak ma vysledny GPX soubor vypadat a co v nem vsechno ma byt. Kazda z moznosti je trochu jina, ale dokumentace je (aspon v dobe psani tohoto prispevku) miziva. Nejlepe je tedy si to vyzkouset nebo se podivat primo do sablon (scriptu) GeoGetu, Sablony pro export jsou textove soubory v adresari "...kde-je-instalovan-vas-GeoGet\data\script\export\". Sablony jsou prehledne, dobre napsane, ale je treba trochu rozumnet programovani, aby se lepe chapaly.

Patrne nejbeznejsi volba je export "PocketQuery GPX". Ta vytvori GPX soubor se vsemi geokesemi a jejich waypointy ve stejnem formatu jako jsou PocketQuery primo z geocaching.com. Tento soubor je plne kompatibilni a vas GPS (pouzivam Oregon) s nim nema problemy. Az na to, ze ty waypointy nemaji vsechny informace, ktere by mohly mit. Tedy lepe receno, vytvoreny GPX soubor tyto informace ma, ale jsou na miste, kde je vas Oregon bude ignorovat. Proto jsem si vytvoril mirne upravenou sablonu.

Sablona je k dispozici zde; jmenuje se mygpxpq.gge.pas. Stahnete-li si ji, ulozte ji do vyse zmineneho adresare "...\data\script\export\". Kdyz pak v GeoGetu zacnete exportovat (nejrychleji pomoci Ctrl-E), objevi se vam ve volbach i ta nova:


A ted to hlavni - v cem se tato sablona lisi od te puvodni:

  • V exportu samotnych geokesi nejsou zadne zmeny. Menit neco tam by znamenalo menit format predepsany Groundspeakem.
  • Hlavni zmena je v popisu waypointu. V puvodni sablone se tento popis uklada do vystupniho policka "cmt", ktere ale Oregon ignoruje. Proto nova sablona popis waypointu dava do policka "desc" (kam puvodni sablona dava jen jmeno waypointu).
  • Popis se jeste lisi podle toho, jaky waypoint to je. Pokud jde o finalni waypoint (napr. finalni souradnice vylustene mysterky), nova sablona dava do popisu puvodni hint z geocache. Pro ostatni waypointy tam dava text, ktery byl zapsan do kolonky "Cmt":

 

  • Pouzivani hintu do popisu je diskutabilni, protoze ve vystupu natvrdo prepise to, co jste mozna sami zapsali v GeoGetu do "Cmt" kolonky. V obrazku nahore je text "u stromu" totozny s hintem, takze se nic nestane, kdybyste ale sem byli byvali zapsali neco vic nebo neco jineho, do vystupniho GPX by to neprislo. Jak rikaji Anglicane, take it or leave it (nebo pripadneji: zmente si sablonku; nejlepe by asi bylo porovnavat v ni hint s "Cmt" textem a podle toho tam dat to ci ono; mozna to nekdy napravim).
  • Pozor take na to, ze Oregon pouzije z pole "desc" jen prvnich 49 znaku, zbytek ignoruje. Na hinty to obvykle staci, ale nemusi. Jine reseni, ktere toto omezeni ma daleko volnejsi (dovolujici vice nez 100 znaku pro popis), je vytvaret waypointy jako body POI (ale o tom snad jindy).
  • Nova sablona take finalnim waypointum prirazuje specificky symbol, zeleny spendlik:
  •  A konecne jsem z waypointu odstranil vystupni pole "url" a "urlname", aby soubor byl kratsi - nikde jsem nevidel, ze by je Oregon pouzival. Rad to ale vratim zpatky, najdu-li pro tato pole vyuziti (v sablone tato cast zustala, jen je ted pouhou poznamkou).