Что касается проблемы «плохих» координат, объект Location, который ваше приложение получает из LocationManager, имеет значение точность ;Если вы беспокоитесь о плохих данных, вы можете отбросить любое значение с низкой точностью.Вы также можете запустить фильтр для ваших данных, чтобы исключить любые действительно отдаленные точки данных.
Для отслеживания данных вы можете сохранить точки в списке.Или, если вы хотите сохранить их от запуска к запуску, вы можете отслеживать их в базе данных SQLite.Затем вы можете просмотреть / сравнить все ваши пробеги позже.