Как рассчитать совокупное расстояние, пройденное с помощью Android GPS?Android - Как рассчитать совокупное расстояние с помощью GPS
Я использую службы Android Location для прослушивания событий изменения местоположения, но просто нахожу дистанцию от последней точки до новой точки и добавляя ее в текущую итоговую информацию о том, что я путешествовал на расстоянии, когда я канцелярские товары.
public void onLocationChanged(Location newLocation) {
if (lastLocation != null)) {
distanceTravelled = distanceTravelled + lastLocation.distanceTo(newLocation);
Toast.makeText(this, distanceTravelled + "", Toast.LENGTH_SHORT).show();
}
lastLocation = newLocation;
}
Я предполагаю, что мне нужно принять во внимание точности каждой точки местоположения перед добавлением его к нарастающему итогу. Есть ли алгоритм для этого?
Заранее благодарен!
Спасибо за ответ! У меня просто была эта идея, которая, как мне кажется, основана на первом методе, о котором вы говорили. Но не уверен, что с этим что-то явно не так? 'общественная пустота onLocationChanged (Location newLocation) { если (lastLocation! = NULL && lastLocation.distanceTo (newLocation)> = lastLocation.getAccuracy() + newLocation.getAccuracy()) { distanceTravelled = distanceTravelled + lastLocation. distanceTo (newLocation); Toast.makeText (это, distanceTravelled + "", Toast.LENGTH_SHORT) .show(); } lastLocation = newLocation; } ' – User24231
Итак, getAccuracy возвращает 68% -ный доверительный радиус - на 68% вы используете счетчики getAccuracy позиции. Итак, в 3 раза вы будете снаружи. Поскольку вы добавляете 2 точности, вы будете внутри нее гораздо чаще. Вы будете пропускать небольшие движения, хотя точность на устройстве андроида может быть не хуже 10 м, поэтому, удвоив его, вы пропустите любое движение в радиусе 20 м (если только движение не покинет его). –