Упрощение / оптимизация GPS-трека

У меня есть GPS-трек, созданный gpxlogger (1) ( поставляется в качестве клиента для gpsd ). Приемник GPS обновляет свои координаты каждую секунду, логика gpxlogger очень проста, он записывает местоположение ( lat , lon , ele ) и отметка времени ( time ), получаемая от GPS каждые n секунд ( n = 3 в моем случае).

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

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

Я подумал об использовании gpsbabel для такой работы по упрощению / оптимизации трека, но, увы, его фильтр упрощения работает только с маршрутами, т.е. анализировать только геометрическую форму пути без временных меток (т.е. не проверять, была ли скорость примерно постоянной).

Есть ли готовая утилита / библиотека / алгоритм для оптимизации треков ? Или, может быть, мне не хватает какой-то умной опции с gpsbabel?

5
задан GreyCat 26 June 2018 в 17:15
поделиться