У меня есть приложение для Android, в котором я пытаюсь определить расстояние, пройденное с помощью координат, предоставляемых GPS. В настоящее время я использую метод, который вычисляет длину дуги между двумя точками земного шара.расчет расстояния с помощью GPS точки облака
public void onLocationChanged(Location location)
{
Location loc= new Location("");
loc.setLatitude(prev_latitude);
loc.setLongitude(prev_longitude);
distance+=location.distanceTo(loc);
...
}
Кроме того, как только это будет сделано, prev_ {широта, долгота} устанавливаются в текущей широты/долготы.
Полученное расстояние дуги затем добавляется к накопленному расстоянию (последняя строка кода). Теперь этот метод работает отлично, если прием GPS достаточно хорош, и мы имеем достаточную точность. Как только точность полученных координат ухудшается, точки начинают отклоняться от реального местоположения, и вся эта ошибка интегрируется в общее расстояние. Есть ли функция в android или отдельная библиотека java, которая автоматически фильтрует ошибку и подходит к правильным точкам/дорожке к набору необработанных GPS-измерений и, таким образом, получает точную оценку пройденного расстояния? Как решить эту проблему, если такая библиотека не существует? См. Изображение ниже для справки. Метод, представленный на Android и используемый сейчас, отображается синей линией. Он вычисляет расстояния отдельно между последующими координатами. Из-за ошибки расстояние неверно. Фактический путь показан красным цветом.
попробуйте прочитать это сообщение, возможно, поможет вам. http://stackoverflow.com/questions/3412416/improve-gps-accuracy-android – totonho