Сглаживание шума для геолокаций

Мое мобильное веб-приложение использует navigator.geolocation.watchPosition для отслеживания полилиний и путевых точек для исторических пешеходных экскурсий. (Требование клиента не является родным приложением)

Мое первое тестирование было проведено в автомобиле из-за плохой погоды и показало приемлемые результаты при построении полилинии на встроенной карте Google в режиме реального времени. Однако при ходьбе он образовывал более зигзагообразную линию.

Некоторые исследования показали, что мне нужно отфильтровать полученное местоположение, а не просто вычислять расстояние между двумя точками.

Предлагаемый фильтр, фильтр Калмана, кажется чем-то выше моего понимания, и мне интересно, есть ли доступная реализация с открытым исходным кодом для JavaScript, которая может помочь в моем случае использования.

Реализация фильтра Калмана на C/C++ с открытым исходным кодом, которую можно скомпилировать в JavaScript с помощью emscripten, может быть помощи тоже.


person bardu    schedule 10.12.2013    source источник
comment
Вы пробовали искать? Это был четвертый результат для javascript фильтра Халмана, это был шестой.   -  person geocodezip    schedule 10.12.2013
comment
@geocodezip Я сделал, но, очевидно, пропустил вашу первую ссылку, все равно спасибо.   -  person bardu    schedule 10.12.2013


Ответы (1)


Я разместил простой фильтр Калмана, который можно использовать для данных геолокации, в ответе на этот вопрос: Гладкие данные GPS . Он был разработан для Android, где показания GPS-местоположения сопровождаются одним номером погрешности, называемым accuracy, который измеряется в метрах. Это означает, что для каждого показания местоположения GPS с вероятностью 67% истинное местоположение находится в пределах круга с центром в указанном местоположении, а радиус круга определяется числом accuracy. Если ваша ситуация отличается, потребуется немного работы, и если это так, я бы посоветовал вам отредактировать вопрос, чтобы более подробно указать, какие входные данные у вас есть для фильтра Калмана.

person Stochastically    schedule 15.12.2013
comment
Спасибо за присоединение. Я уже сталкивался с вашим простым фильтром Калмана и планировал реализовать ваш класс Java в JavaScript. Если я это сделал, можем ли мы сообщить о тестовом примере, чтобы проверить мою реализацию? Поскольку требуется использовать только API-интерфейсы HTML5, я собираюсь отредактировать свой исходный вопрос, как только соберу все части вместе на основе уже проведенных тестов. - person bardu; 17.12.2013
comment
Для тестового случая вы можете использовать свое приложение для хранения реальных данных (как местоположения, так и числа accuracy), а затем запустить эти данные через свою реализацию для разных значений параметра Q. Вы должны увидеть, что Q управляет степенью сглаживания. - person Stochastically; 18.12.2013