Мы разрабатываем мобильное приложение, одна из функций которого - отслеживание маршрута пользователя. Приложение просто посылает координаты на сервер, когда пользователь перемещается.
Затем встаёт главная проблема - как по этим координатам нарисовать ровный маршрут на карте?
Если просто соединить все точки по порядку, то имеем 2 проблемы:
1. Слишком много точек. Эта проблема решается с помощью алгоритмов симплификации кривой, например
RDP.
2. GPS не идеален, и иногда ошибка может быть 100-200 метров. В итоге на карте появляются зигзаги, петли и прочие некрасивые вещи, хотя очевидно человек просто двигался по прямой.
Пример:
черное - если просто соединить точки по порядку
красное - примерно то, что требуется
Вопрос: может ли кто-то подсказать нужный алгоритм или хотя бы дать совет, куда копать? Интересует именно возможность сглаживания ошибок.