Сглаживание данных, полученных из CoreLocation - PullRequest
2 голосов
/ 21 марта 2011

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

Я ищу предложения / стратегии по сглаживанию данных, чтобы линия, нарисованная на карте, была более гладкой, а не точной от точки к точке.

1 Ответ

2 голосов
/ 21 марта 2011

Существует множество различных типов алгоритмов сглаживания, которые вы можете применить к данным (несколько начальных точек см. в этой статье Википедии). Единственный способ точно узнать, какие из них подходят для вашего приложения, - это внедрить и протестировать их.

Простые или взвешенные скользящие средние довольно распространены (взятие последних n выборок и их усреднение), но имеют проблему отставания от данных. Обычным для фильтрации шумового сигнала является фильтр верхних частот, который ослабляет небольшие (шумные) движения при прохождении через более крупные. У Apple есть код для этого в их AccelerometerGraph примере.

Я бы посоветовал сначала опробовать их, поскольку они просты в реализации, прежде чем рассматривать сложные ходы.

...