Тривиальным способом определения пройденного расстояния с течением времени будет получение исправлений каждую секунду, а также считывание и запись скорости, сообщенной для каждого исправления (в метрах в секунду). Тогда ваше пройденное расстояние является суммой всех скоростей за истекший период времени.
Если вы хотите избежать подсчета «джиттера» как движения (то есть, если исправления блуждают медленно из-за неточностей фиксирования GPS, но устройство фактически неподвижно), вы можете установить порог скорости, например, игнорируя скорости ниже определенного уровня, или если курс быстро меняется между исправлениями. Эти пороговые значения, вероятно, будут зависеть от используемого устройства GPS, и некоторые устройства уже имеют встроенную функцию такого типа (то есть, если скорость слишком низкая, они сообщают 0 м / с).
Однако это действительно зависит от устройства. Например, моя ранняя модель Samsung Galaxy I9000 бродит в радиусе 20 метров даже в условиях ясного неба со скоростью около полуметра в секунду, поэтому, если она будет стоять в поле в течение десяти минут, приведенный выше алгоритм сообщит, что он путешествовал 300м.