KML turn-by-turn

Att ta sig från punkt A till B handlar inte alltid om att ta den kortaste eller snabbaste vägen. Har man motorcykel, är trail löpare, vandrare eller av någon annan anledning vill bestämma själv vilken väg man helst tar mellan start och mål är där ganska få navigations alternativ idag. En lösningen som bör nämnas är självklart http://www.everytrail.com/ där man hittar många spännande rundor. Men det är en sak att hitta till starten, en helt annan att hitta under tiden man går/springer eller kör. Nu kan man hävda att det är fullt möjligt att följa tänkt runda direkt i kartappen på telefonen. Detta har jag delvis varit inne på innan när jag beskrev hur jag exporterar Foursquare listor till t.ex. Google Earth, Maps eller Galileo. Men detta kräver att man hela tiden håller koll på sin telefon så att man inte missar att svänga av vid rätt tillfälle.

Så jag vill alltså ha en bilnavigationslösning men den skall inte följa vägar och ge mig kortaste rutten. Nej, den skall guida mig enligt en rutt som jag själv definierat. De senaste veckorna har jag därför experimenterat med detta och har nu en lösning som i grunden fungerar.

På följande video ser ni en demo där jag simulerar en cykeltur i San Francisco. “id_x” punkterna är brytpunkterna från KML filen jag byggt i Google maps. Så de representerar alltså rundan jag skall cykla. Den blå linjen som ritas ut är riktningen jag cyklar i. Se speciellt mellan punkt id_4 och id_5 när jag svänger norröver. Den gröna linjen, även den ser ni bäst mellan punkt id_4 och id_5, visar kortaste vägen till nästa brytpunkt. Då det inte är målet som är det viktigaste har jag lagt stor vikt vid att man når varje brytpunkt. Detta bör man ta hänsyn till när man designar sin rutt så man inte lägger ett oöverstigligt berg mellan två brytpunkter. Lösningen kommer leda dig rätt då den hela tiden beräknar kortaste vägen för dig, men den tar alltså inte hänsyn till hinder.
Med iOS7 har man nu även tillgång till HTML5 speech API vilket alltså ger mig möjlighet att låta en röst berätta var jag skall cykla. Men tyvärr kan denna funktion inte triggas från interna funktioner så därför har jag lagt till knappen “Tell me” som berättar var jag skall gå.

Att jag visualiserar detta via en karta hjälper för min egen förståelse när jag sitter och kodar. Men tanken är att överföra det till en app och bara framvisa pilar. Då slipper man nämligen tänka på roaming kostnader när man är utomlands. I teorin kan jag nu rita upp en löprunda på okänt ställe i Google maps och sedan ge mig ut över stock och sten och ändå komma i mål. Eller så kan jag bygga en guidad Jack The Ripper tur som vem som helst kan ladda ner och följa.