мы разрабатываем мультиплатформенное (android и ios) приложение на реактивном языке, которое в основном работает с данными геолокации, поэтому оно сильно зависит от точности и точности данных.Например, приложение накапливает - считывает и сохраняет - данные геолокации пользователя каждые 5 секунд, т.е. в течение 10 минут (давайте назовем это треком).Итак, во время трека сохранено около 200 измерений.Позже мы выполняем различные вычисления на основе данных, собранных во время отслеживания, и визуализируем результаты для пользователя.
В то время как на iphone график высот данных, измеренных на физически (почти) идентичной высоте, имеет довольно линейные / плавные характеристикиНа андроиде, как правило, пики + -5 метров.Допустим, мы хотим измерить общее количество метров, поднятых на трассе, чтобы таким образом вычислить сумму различий между последующими измерениями.Теперь представьте, как указанная неточность влияет на результат - каждые 5 секунд может быть изменение высоты на 5 метров.Хотя физически ваше общее превышение составляет + -0 метров, общее вычисленное превышение может существенно различаться.
Таким образом, для устранения ошибок у нас есть два основных способа:
- чтобы сделать измерения более точными и точными (это естественно)
- чтобы выполнить какое-то приближение и соответствующим образом скорректировать измерения (это глупо)
Первый способ звучит намного лучше, но мы знаем об аппаратном ограничении конкретного устройства - мы просто не можем исправить неточное оборудование нашим программным обеспечением.Проблема в том, что даже на одном устройстве другие коммерческие приложения (например, Runtastic) выполняют измерения «лучше» (даже в автономном режиме).Это заставляет меня думать о втором (приблизительном) способе.Этот способ довольно хакерский, и хотя он может привести к хорошему результату во многих случаях, мы думаем (но не можем доказать), что нет такого точного приближения, которое никогда не испортит данные «слишком сильно».
Итак, наши вопросы:
- Какие методы позволяют сделать каждое измерение высоты максимально точным и точным на Android?Какие инструменты могут быть полезны для достижения этой цели и как мы должны их использовать, чтобы получить наилучший опыт?Мы можем думать о:
- высота над уровнем моря
- высота над уровнем моря
- барометр
- онлайн API для получения высоты на основе широты и долготы
- Стоит ли применять какое-то приближение к накопленным данным?Если так, какие аспекты (или даже лучшие идеи) мы должны принять во внимание?Эта техника распространена?
- Есть ли какое-то другое решение, которое мы не упомянули?
Заранее спасибо!