Всё дело в том, как то или иное приложение считает расстояния.
GPS выдаёт только координаты с определенной периодичностью - всё остальное делает софт.
Расстояние между двумя точками, координаты которых выдал GPS, можно посчитать как минимум следующими способами:
- по прямой между двумя физическими точками
- по дуге окружности, соединяющей две проекции точек на сферическую или эллиптическую (или еще какую) математическую модель поверхности Земли
- с учетом высот точек, вычисленных GPS
Так что расслабьтесь - чаще всего навигационные программы не учитывают перепад высот и считают длину по дуге окружности между проекциями точек.
Почему они делают это именно так - ответ вы получите сами, если попытаетесь проанализировать записанные GPS профили высот, там полно флуктуаций.