Как рассчитать расстояние между двумя точками при ходьбе (без GPS)

1

Функция android distanceTo() и distanceBetween() дает результаты, когда я добираюсь до пункта назначения lat и lon. Но мне нужно покрыть случай, когда широта и долгота не могут быть изменены (например, если я гуляю по улице с высокими зданиями, войдите в здание или пройду короткое расстояние, сделав больше поворотов). Для этих условий, как рассчитать расстояние в android?

Когда я искал ответы других ответов stackoverflow, я прошел через здесь.

Я попробовал следующий answer. Код хорош и хорош, но когда я пытался вычислять расстояние по этому коду каждый раз, он дает постоянное значение, даже когда я не хожу.

Пожалуйста, помогите мне в вычислении расстояния между двумя точками

  • 0
    «широта и долгота не могут быть изменены, если я иду по улице ...» Как?
  • 0
    Вы хотите рассчитать расстояние между двумя точками, даже если оно настолько короткое, что не вызывает изменения в данных GPS? Измерения GPS, проводимые через регулярные промежутки времени, должны быть достаточными для расчета расстояния.
Показать ещё 1 комментарий
Теги:
android-sensors
distance

1 ответ

5
Лучший ответ

Когда вы войдете в здание, у вас есть GPS lat/long, но после этого он не изменится, потому что нет покрытия GPS. Итак, вопрос заключается в том, как обращаться с таким случаем, имея только последнюю позицию. Я бы подошел к этой интересной проблеме таким образом:

  • Используйте информацию о сетях Wi-Fi для местоположения (а не только GPS).

  • Используйте датчики. У вас есть датчики ориентации и ускорителя. Я помню, что некоторые телефоны имеют функцию подсчета количества шагов (у меня это было на SonyEricsson без GPS).

  • Датчик ускорителя может предоставить вам информацию, если человек движется, и поможет вам подсчитать количество шагов (вам нужно сделать некоторую оценку среднего значения расстояния). Вы можете легко заключить, что человек находится в лифте, и если он идет вверх или вниз, и грубо оценивает количество этажей.

  • Ориентационный датчик может дать вам информацию о направлении изменения движения (поворот за угол).

  • Расположение на основе силового сигнала GSM. NeighboringCellInfo из android.telephony дает вам информацию о RSSI (индикаторе прочности сигнала приема) для ячеек вокруг вас, но для точного вычисления положения (точность около 50 м) на основе триангуляции вам требуется точное положение базовых станций (которые вы не можете получить без поддержка оператора).

Понятно, насколько неточна такая оценка, но я не вижу другого подхода.

В любом случае, для много интересного изучения/разработки.

  • 1
    Также можно использовать triDown с использованием мобильной сети.
  • 0
    @AndroidKid - Спасибо. Обновил мой ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню