@druper

Как правильно использовать расчет расстояний Distance Matrix API?

каждую минуту в бд записывается местоположение. рассчитывается расстояние между двумя ближайшими точками с помощью Distance Matrix API. затем складывается.
получаю лишние километры за пару часов езду по городу. или сотни метров, пока стою в пробке.

private LocationRequest initLocationRequest() {
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(LOCATION_INTERVAL_SECONDS);
        mLocationRequest.setFastestInterval(LOCATION_INTERVAL_SECONDS / 2);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        return mLocationRequest;
    }

    private void setLocationUpdates() {
        mLocationCallback = new LocationCallback() {
            @Override
            public void onLocationResult(LocationResult locationResult) {
                for (Location location : locationResult.getLocations()) { 
                  saveInDb(location );
                }
            }
        };

        initLocationRequest();
        mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);
    }
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
Я рискну предположить, ваша проблема в "дребезге" показаний GPS, отличающихся на несколько метров. Стоите вы в пробке 10 минут, например, а по показаниям GPS совершаете 5- 10-метровые "прыжки" около одной точки.

Присмотритесь к данным. Если всё так, как я говорю, прикрутите фильтрацию, которая будет адаптировать полученные данные к скорости вашего перемещения.

Начните с отсеивания данных, если расстояние между ними, поделенное на количество секунд, будет менее N метров (быстрее чем пешеход).

Добавляйте к каждому отрезку пути вектор перемещения. Это позволит отсекать отрезки незначительной длины, противоречащие последнему значимому вектору.

Да много всяких ухищрений можно придумать. Всё зависит от вашей ситуации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы