Wskazania dystansu w każdej z tych aplikacji mogą być bardzo różne, a wynika to głównie z algorytmów pomiaru odległości między punktami zarejestrowanymi przez GPS. Podejrzewam, że każda z nich często rejestruje punkty (np. co sekundę), a wskazania dystansu zależą od tego, co z tymi punktami zrobi. Najprostszy algorytm, to dodawanie do siebie długości odcinków między punktami (szerokość, długość geograficzna), bez żadnych korekt, uwzględnienia zmiany wysokości (istotne przy biegach w górach), odsiewu nierealnego pomiaru (np. skoki położenia, wskazujące na nierealne dla biegacza tempo powyżej 40 km/h).
Bawiłem się trochę programowaniem takich algorytmami i w mojej aplikacji daję użytkownikowi wybór opcji pomiaru w zależności od tego, jak dokładny ma GPS i czy nie porusza się w trudnym do pomiaru terenie (np. doliny górskiej, w których jest widziany przez niewiele satelitów). Te opcje to: częstotliwość pomiaru, uwzględnianie zmian wysokości (na bieżąco lub co określony odcinek), korekta pomiaru dłuższymi odcinkami (zakładam, że pomiar koryguję np. co 100 m, obliczam długość prostej między zmierzonymi punktami i dodaję kilka procent w zależności od tego, czy trasa jest kręta). Niestety, moja aplikacja na Androidzie jest na razie tylko kalkulatorem biegowym, nie ma trackera GPS. Pomiar działa na telefonach obsługujących Java.
Wcześniej miałem zewnętrzny GPS, teraz korzystam z modułu wbudowanego w moją Nokię 500. Kiedy biegam po górach i używam najprostszego algorytmu, to dystans jest znacząco zawyżany. Wynika to z dziwnych skoków położenia - zmierzone punkty oscylują wokół ścieżki, którą biegnę (raz w prawo, raz w lewo), więc suma długości odcinków jest większa, niż długość ścieżki. Pewnie też tak masz - spójrz na zrzut treningu na mapie. Pojawiasz się na działce sąsiada, czy dachu pobliskiego budynku.
W czasie moich biegów po górach najbardziej sprawdza się algorytm z korektą dystansu. Wczoraj robiliśmy z żoną bardzo długą wycieczkę biegową, ja z Nokią i RunCalc, ona z Garminem F305. Różnica naszych pomiarów na 36 km wyniosła tylko 10 m, jest to jednak duży przypadek:
http://runcalc.byledobiec.pl/index.php? ... &tr_id=584
Jak napisali koledzy, dobrym pomysłem jest zgranie treningu do GPX i obliczenie dystansu innym algorytmem. Ja czasem wczytuję takiego GPX-a do SportTracks i porównuję pomiary (u mnie można to zrobić przez zapisanie pliku GPX na karcie pamięci w telefonie, lub wyeksportowanie z portalu). SportTracks może pokazać zupełnie inny dystans, niż aplikacja w telefonie. Tak z ciekawości, wrzuciłem GPX z tego treningu do ST - zamiast 36 km, pokazał 46,5 km, czyli różnica jest ogromna.
Wracając do Twojego problemu, musisz wyczuć, która aplikacja najbardziej wiarygodnie pokazuje dystans w określonych warunkach. Może się okazać, że Endomondo jest lepsze przy dobrej pogodzie na płaskich trasach, a MapMyRun pokazuje bardziej wiarygodny dystans przy kiepskim sygnale GPS. Pozostaje tylko fundamentalne pytanie, co to jest ten „wiarygodny dystans”
