Как выполнить геолокацию, чтобы получить максимально точные данные? - PullRequest
0 голосов
/ 10 июля 2019

мы разрабатываем мультиплатформенное (android и ios) приложение на реактивном языке, которое в основном работает с данными геолокации, поэтому оно сильно зависит от точности и точности данных.Например, приложение накапливает - считывает и сохраняет - данные геолокации пользователя каждые 5 секунд, т.е. в течение 10 минут (давайте назовем это треком).Итак, во время трека сохранено около 200 измерений.Позже мы выполняем различные вычисления на основе данных, собранных во время отслеживания, и визуализируем результаты для пользователя.

В то время как на iphone график высот данных, измеренных на физически (почти) идентичной высоте, имеет довольно линейные / плавные характеристикиНа андроиде, как правило, пики + -5 метров.Допустим, мы хотим измерить общее количество метров, поднятых на трассе, чтобы таким образом вычислить сумму различий между последующими измерениями.Теперь представьте, как указанная неточность влияет на результат - каждые 5 секунд может быть изменение высоты на 5 метров.Хотя физически ваше общее превышение составляет + -0 метров, общее вычисленное превышение может существенно различаться.

Таким образом, для устранения ошибок у нас есть два основных способа:

  • чтобы сделать измерения более точными и точными (это естественно)
  • чтобы выполнить какое-то приближение и соответствующим образом скорректировать измерения (это глупо)

Первый способ звучит намного лучше, но мы знаем об аппаратном ограничении конкретного устройства - мы просто не можем исправить неточное оборудование нашим программным обеспечением.Проблема в том, что даже на одном устройстве другие коммерческие приложения (например, Runtastic) выполняют измерения «лучше» (даже в автономном режиме).Это заставляет меня думать о втором (приблизительном) способе.Этот способ довольно хакерский, и хотя он может привести к хорошему результату во многих случаях, мы думаем (но не можем доказать), что нет такого точного приближения, которое никогда не испортит данные «слишком сильно».

Итак, наши вопросы:

  1. Какие методы позволяют сделать каждое измерение высоты максимально точным и точным на Android?Какие инструменты могут быть полезны для достижения этой цели и как мы должны их использовать, чтобы получить наилучший опыт?Мы можем думать о:
    • высота над уровнем моря
    • высота над уровнем моря
    • барометр
    • онлайн API для получения высоты на основе широты и долготы
  2. Стоит ли применять какое-то приближение к накопленным данным?Если так, какие аспекты (или даже лучшие идеи) мы должны принять во внимание?Эта техника распространена?
  3. Есть ли какое-то другое решение, которое мы не упомянули?

Заранее спасибо!

1 Ответ

0 голосов
/ 19 июля 2019
  1. Высота GPS - лучшая.но это зависит от чипа GPS.Есть некоторые с высокой точностью (High Cost).Большинство телефонов GPS используют для получения данных также в режиме онлайн (для хорошего начала работы)

  2. Для сглаживания данных GPS (или любых других), вы можете использовать Kalman Filter.Это сложный и тяжелый но.это может гарантировать результат и очень хорошо избежать вводящих в заблуждение данных.
    ИЛИ
    Вы можете не указывать вводящие в заблуждение пакеты на основе предыдущих (Средний фильтр) - Простой, но должен быть зашифрован

ПРИМЕЧАНИЕ: У меня естьНе использую барометр.Я дал свой ответ без него.Удачи

...