Beregning av optimal rute mellom cacher

I en av besvarelsene på den pågående brukerundersøkelsen, kom det frem et sterkt ønske om en funksjon som kunne beregne optimal rute mellom cachene i en tur.

Jeg begynte å grave litt, og fant etterhvert frem til noe som kunne fungere. Rett etterpå kom jeg på en makro til GSAK, som gjør omtrent akkurat det jeg trang. Makroens eier ble kontaktet, og jeg begynte å grave litt lenger ned i materien.

Ikke alt for lenge etterpå var første testversjon klar, og i dag har funksjonen åpnet for alle. Ruteberegning gjøres via Google Maps API, og har visse begresninger. Du kan kun gjøre et begrenset antall oppslag i døgnet. Siden utregningen av den optimale ruten skjer på din maskin, vil kompliserte ruter kunne bli for krevende til at du kan beregne en optimal rute. I tillegg vil det ikke være mulig å beregne ruter for turer med mer enn 50 veipunkter.

Men i mange tilfeller vil verktøyet fungere, og du finner det ved å navigere til «Endre tur» -> «Sorter/prioriter veipunkter».

FørBeregning

Trykk på «Kalkuler» for å starte beregningen. En fremdriftsindikator, og en statusboks, vil vise hvor lang tid som gjenstår.

Når beregningen er ferdig, vil du få opp den optimaliserte ruten.

EtterBeregning

Trykk på «Sorter veipunkter etter optimal rute» for å automatisk sortere veipunktene nedenfor. Merk: ingenting lagres før du trykker «Lagre»

Foreløpig er det kun cacher som tas med i beregningen, og alle ruteberegninger utføres for bil. Vi har planer om å implementere riktig beregning for fotturer/sykkelturer, og selvfølgelig alle veipunkttyper. I tillegg skal vi se på muligheter for å optimalisere kun deler av en tur, slik at verktøyet kan benyttes på turer med mer enn 50 veipunkter.

Beregning av rute for turer

Når jeg gravde litt etter alternativer, for å se om det var mulig å finne noe med mindre begresninger, endte jeg opp hos MapQuest. De har en åpen API, som benytter data fra OpenStreetMap. Etter å ha lest litt hva jeg kan gjøre med den, begynte jeg å leke med tanken på å kunne hente ut data som kan brukes til å indikere avstand og tid på en tur.

Litt prøving og feiling senere, har jeg i kveld fått på plass automatisk beregning av kjørerute for alle turer (både planlagte og turforslag) som har under 50 veipunkter. Gamle turer vil ikke få beregnet rute før de evt. endres. Det er heller ikke alle turer det er mulig å beregne rute for. (funksjonen for beregning av optimal rute benytter fortsatt Google Maps API)

På sikt er planen å få implementert beregning for turer med mer enn 50 veipunkter også.

Ruteberegning gjøres basert på turtype, slik at f.eks. en sykkeltur, vil være optimalisert for nettopp sykler. Ruter beregnes etter den rekkefølgen cachene ligger i turen, det er ingen automatisk optimalisering her.

På turer som har rute beregnet, vil den vises på kartet istedet for luftlinjestrekene. Du kan veksle mellom rute og luftlinjestreker (eller du kan ha begge to på samtidig) i kartmenyen.

Kart

Under oppsummeringen har det kommet en ny seksjon, hvor ruteinfo vises.

Ruteinfo

I tillegg vil det på hver enkelt cache i veipunktlista, indikeres avstand og tid fra forrige, i detaljvisningen.

AvstandsInfo

 

Som vanlig, vi tar gjerne imot kommentarer og innspill!

OpenStreetMap

Kartdataene som brukes som grunnlag for MapQuest sin ruteberegningsmotor, kommer fra OpenStreetMap.

Kvaliteten varierer fra sted til sted, men er mange steder veldig god.

Det som er viktig å vite, er at dersom du syns det er dårlig kvalitet, kan du selv bidra til å gjøre det bedre!

Du kan lese mer om hvordan du bidrar her og her.


thomfre

thomfre er hovedutvikler og personen bak cachetur.no.