Kesä-heinäkuun vaihteessa tuli Trailmap-palvelua raaputettua isosti sekä pinnalta että vähän syvemmältä. Alun perin ajatuksena oli vain tehdä Garmin-integraatio kun amerikkalaisyritys viimeinkin päätti hieman enemmän avata Garmin Connect -palvelunsa ohjelmointirajapintaa (API) ja uutinen sattui silmään DC Rainmakerin loistavasta blogista. Sitten tuli muutama mutka matkaan ja Trailmap kävi lävitse vähän isomman kausihuollon samalla.

Palveluun nopeutta ja luotettavuutta

Tähän asti Trailmapin taustalla olevat palvelut on tuotettu pienin osin Amazonin pilvipalvelussa (AWS) ja pääosin allekirjoittaneen kotona työhuoneen nurkassa kesäisin mukavasti lämpöä hohkavassa palvelinryppäässä. Ensin "kotilabrasta" kyykkäsi levypalvelin joka lähti UK:hon takuuhuoltoon, kesäkuun helteillä verkon kytkin ylikuumeni alkoi buutata itseään 15 minuutin välein ja varalla toiminut levypalvelin täyttyi hieman myöhemmin ja näin valitettavasti Trailmap-palvelussa oli ajoittain hieman takkuilua.

Nämä yhteensattumat katkaisivat ns. kamelin selän ja työn alla ollut Garmin-integraatio siirtyi hetkeksi hyllylle odottamaan kun siirsin kotilabran palvelut Hetznerin pilveen (huomattavasti halvempi kuin AWS...). Nyt pitäisi palvelun olla aiempaa stabiilimpi ja laskennan & tiedonsiirron kannalta raskain elementti eli 3D MTB Map hyödyntää Hetznerin pilvipalvelimien jatkona kotilabraa joten vauhtiakin tuli sen piirtämiseen huomattavasti lisää.

Tekninen arkkitehtuuri ennen muutoksia

Garmin-integraatio reiteille

Aiemmin Trailmapilla piirrettyjen reittien siirto Garminiin oli melko monivaiheinen rupeama. Uuteen versioon toteutettu Garmin-integraatio suoraviivaisti sitä mukavasti ja teki samalla myös kännykällä reittien piirtelystä mahdollista.

Uudesta "pilvipalvelu" ikonista saa auki "Tallenna Garminiin" toiminnon. Ensimmäisellä käyttökerralla (huom. tee ennen reitin piirtämistä!) liitetään Trailmap Garmin Connect palveluun. Sen jälkeen piirretyn reitin (tai avattu GPX-tiedosto tai Strava-aktiviteetin reittijälki eli toimii samoin kun GPX-tallennus ja reitin jako toiminnot) voidaan lähettää tuolla valinnalla Garmin Connect palveluun. Kun lähetys on onnistuneesti tehty niin avautuvasta valikkoruudusta kun klikkaa linkkiä niin pääsee suoraan kyseiseen reittiin ("Course") Garmin Connect verkkopalvelussa tai puhelimella Garmin Connect applikaatioon joka toivottavasti on asennettu puhelimeen. Siitä kun vielä muistaa painaa "Send to Device" ("Lähetä laitteeseen" tms. suomeksi) painiketta niin sen jälkeen kun Garminin laitteen synkronoi niin reitti siirtyy sinne listalle odottamaan.

Uudemmat Garmin Fenix urheilukellot ja Edge pyörätietokoneet osaavat tehdä tuon synkronoinnin varsin sujuvasti joko wifin välityksellä suoraan tai sitten puhelimen Garmin Connect sovelluksen kanssa Bluetoothin välityksellä. Vanhemmat pitänee käyttää johdolla kiinni tietokoneessa ja siellä pyörivä Garmin Express sovellus hoitaa synkronoinnin.

Suunto on myös avannut oman palvelunsa ohjelmointirajapinnan, laajemmin vielä kuin Garmin. Voitte arvata mitä on jo työlistalla...

Trailmapin puhelinversion remppa

Garmin-integraation toteutuksen jälkeen kului hyvä tovi ennen kuin sain sovittua Garminin kanssa katselmoinnin jotta sain virallisen hyväksynnän heiltä käyttää integraatiota. Siinä välissä ajattelin hieman viilata Trailmapin puhelinversion muutamaa itseäni ärsyttänyttä yksityiskohtaa. Yksi viilaus johti kuitenkin toiseen ja hetkeä myöhemmin oli huomattavan iso osa Trailmapin-selainkoodista remontoitu uusiksi.

Nippu viilauksia:

  • Kun paikannuspalvelu on päällä niin kartta seurasi jo aiemmin paikannuspallukkaa kunhan ei mennyt siirtämään tai zoomaamaan karttaa. Sitten kartan keskittäminen lakkasi. Mikä teki aika hankalaa käytöstä jos puhelinta katseli vain välillä ja piti sitä esim. paidan takataskussa siinä välissä. Siinä kun helposti tuli karttaa tahattomasti siirrettyä. Nyt kartan keskitys aktivoituu aina kun puhelin tai Trailmap-sovellus avataan uudestaan. Jos GPS-signaali saadaan nopeasti avaamisen jälkeen niin käyttö on jo varsin juohevaa (vanha kikkahan on edelleen pitää joko iPhonessa Applen Mapsia tai Androidissa Googlen Mapsia taustalla myös koska ne tekevät kaiken aikaa paikannusta ilmeisesti hieman "paremmalla" prioriteetilla kuin Trailmap).
  • Tilan säilyttäminen: Trailmap kannattaa kännykässä asentaa kotiruutuun (ohjeet). Se ei ole ns. natiivi-sovellus vaan PWA ("edistynyt web-sovellus" vapaa suomennos), jotka aiemmin olivat vain harmaita haamuja natiivi-applikaatioista mutta ovat nykyään huomattavan kyvykkäitä etenkin Android-puhelimissa ja iOS 13 version myötä myös suht hyviä iPhoneissa. Yksi haaste Trailmapissa kuitenkin oli se, että sekä Android että erityisesti Applen iOS sulki sovelluksen arvaamattomasti eri syistä (muisti vähissä, virta vähissä tms.) ja jos oli vaikka ennen metsään menoa ladannut GPX-reittijäljen ruudulle niin se saattoi hävitä kun Trailmap-sovellus ei ollut auki. Nyt ei katoa enää, Trailmap säilyttää puhelimessa 3 tunnin ajan edellisestä avaamisesta ns. tilansa (karttavalinnat, keskipiste, paikannustoiminto ja kartalle ladatut reittijäljet).
  • Offline-kartat: Metsässä ei aina mobiiliverkon signaali ole paras mahdollinen ja se on näkynyt Trailmapin hitautena, sekä itse sovelluksen käynnistys että kartan reagointi sen liikuttamiseen tai zoomaamiseen. Tässä on ollut suurin ero natiivi-sovelluksiin. Vaan eipä ole enää. Nyt sovellus ladataan puhelimen muistiin ja se toimii ilman verkkoa. Lisäksi käyttäjä voi ladata osia kartoista muistiin (ns. offline-kartat), jolloin toiminta on sekä huomattavan juohevaa että onnistuu myös ilman mobiiliverkon signaalia tarvittaessa. Tästä hieman pitempi kirjoitus ohjeiden kera täällä >. Aluksi toimii niin että vaatii erillisen offline-karttojen lataamisen, myöhemmin mahdollisesti toimii osin automaattisesti. Pitää saada hieman kokemusta lisää etenkin iPhonen teknisestä toteutuksesta joka on aika epämääräisesti dokumentoitu tuon toiminnon vaatiman teknisen kyvykkyyden osalta.

Näiden viilausten jälkeen Trailmap toimii kännykässä sen verran mukavasti että itse en ole enää käyttänyt natiivi-karttasovelluksia (OsmAnd, OruxMaps jne.) kun ei niiden epätarkat kartat (eivät tue ns. retina-karttatiiliä) omaa silmää miellytä, vaikka joissakin muissa asioissa ovat hieman parempia kuin Trailmap. Mielellään tästä kuulisin muilta käyttäjiltä myös ajatuksia.

Pieniä käyttöliittymän parannuksia

Karttatasojen valintaikkunan alla kartan vasemmassa laidassa on uusi "suurennuslasi"-nappi. Sillä voi hakea paikkoja eli osoitteita, paikkakuntia, luonnonpuistoja jne. kuten vaikkapa Google Maps:ssa.

Jos karttatasolle on ladannut useamman GPX-reittijäljen, esim. Stravasta lämpökartta toiminnolla (joka lataa kerralla aina vuosineljänneksen Strava-aktiviteettien reittijäljet) niin aiemmin ei ole ollut helppoa erotella jälkiä toisistaan, eikä myöskään yksittäisestä jäljestä ole sen avaamisen jälkeen ollut tarjolla tietoa. Uudella versiolla tietokoneversiossa kun siirtää hiiren kursorin reittijäljen päälle niin saa perustiedot pieneen infoikkunaan.

Tämä (lämpökartta-toiminto) on nyt muuten näppärä tapa löytää se tietty lenkki joka kulki jollakin polulla, muutenhan tuo on hieman vaivalloista puuhaa Stravan, Garminin tms. palveluissa lenkkejä yksi kerrallaan selaten jotta löytyisi juuri se joka kulki tietyllä polulla.

Esimerkki Strava-reittijäljistä kun ruudulla on vuosineljänneksen aktiviteetteja (lämpöjälki)

Beta-versio

Hetznerin pilvipalvelu on jo käytössä, mutta muut yllä kuvatut uudet toiminnallisuudet löytyvät toistaiseksi vain Trailmapin beta-versiosta osoitteesta https://beta.trailmap.fi. Sen verran iso remontti oli kyseessä että kaipaa hieman muidenkin kuin minun testaamista ennen kuin nykyisen julkaisuversion korvaa sillä. Virheraportit ja muut huomiot voi laittaa suoraan emaililla support (miuku) trailmap.fi

Tästä eteenpäin

Osin ym. toimintojen takia, osin muuten vain tuli Trailmapin konepellin alla tehtyä remppaa sen verran että nyt on taas paljon helpompaa toteuttaa muitakin uusia toimintoja.

Idealistalla pyörivät mm. seuraavat:

  • Parempi tuki (Some / Whatsapp / jne.) jakamiseen: URL-osoitteeseen kartan asetusten koodaus kuten esim. openstreetmap.org, näin voisi jakaa helpommin jonkin kartalla olevan kohdepisteen. Reittien jakamisessa nyt Facebook:iin tulee linkin kuvaksi geneerinen Trailmap-ikoni, siihen saisi myös väkerrettyä kuvan reitistä kartan päällä ja reitin pituus yms. tietoja (kuten esim. Strava tekee) jolloin linkkiä avaamattakin olisi helpompi nähdä mihin reitillä on viitattu.
  • Info-näkymä (jaettuihin) reitteihin ja reittijälkiin. Nyt kartalle piirtyvistä reiteistä ei aina ihan heti näe kuinka pitkiä ne ovat, eikä muutakaan tietoa esim. reitillä olevien polkujen tyypeistä, korkeuseroista tms.
  • Karttatyylin osalta Tapio on jo tekemässä uutta versiota joka sekä karistaa hieman hämähäkinseittejä MTB karttatyylistä teknisen toteutuksen osalta että tuo mahdollisesti uusia piirteitä siihen mitä kartalla kuvataan.
  • Strava-segmentit kartalle lisätasoksi, näin voi reitin suunnitella "sopivasti"
  • Käyttäjien valokuvia poluista tai näkymiä niiden varrelta. Tämän ajatus on auttaa saamaan vielä parempi kuva siitä minkälaisista poluista on kyse kuin pelkkä karttatyyli (ja OpenStreetMap-data) kertoo. Inspiraatiota tähän on haettu sekä Trailforks-palvelusta että Facebookin juuri ostamasta Mapillary-palvelusta. Tämä on sen verran monimutkainen kokonaisuus että mieluiten käyttäisi valmista kuva / POI -palvelua mutta hyvää sellaista ei ole tullut vielä vastaan.
  • Käyttäjätilit jotka mahdollistaisivat reittien ja reittijälkien tallennuksen ja helpon siirrettävyyden tietokoneen ja puhelimen (tai vaikka kaverin koneen) välillä.
  • OpenStreetMap-kartoittamisen helpottamiseksi ja ihmisten motivoimiseksi on nippu hajanaisia ideoita. Tämä on oman listan kärjessä ja yksi keskeisiä syitä miksi Trailmapin kanssa tulee ylipäätään värkättyä, mutta vaatii vielä pohdintaa ja oppimista siitä miten "Tampereen ihmeen" saisi toistettua muillakin seuduilla.

Mielellään kuulen kommentteja ja vaikka täysin uusiakin toiveita mitä toiminnallisuuksia eniten kaivattaisiin. Lupauksia toteutuksesta en anna, mutta iloinen yllätys on aina mahdollinen. Prioriteettina on toiminnot joista on iloa isommalle porukalle, se kun ruokkii taas uusien kartoittajien löytymistä & nykyisten motivaatiota ja niin positiivinen kierre saa vauhtia ("Polut kartalle ja ihmiset poluille").