Как создать мастер-трек из большого набора координат, полученных от gps-трекеров? Есть самописная система мониторинга транспорта.
Есть несколько сотен автомобилей, оснащенных gps-трекерами.
Все автомобили катаются из Москвы в регионы. Представьте карту Москвы и области, основные трассы, выходящие с МКАДа и идущие во Владимир, Екатеринбург, Красноярск, Питер, Краснодар и т.д. Десятки и сотни городов.
За год работы в системе накопилось несколько десятков миллионов координат. Если отобразить их на карте, то они в основном лягут на трассы, о которых говорилось выше. Иногда будет "мусорные координаты" - машина под крышей заправки, либо еще какие-то помехи, объез пробок. Например, в Питер из москвы можно ехать через Чехов. Узнали об этом только после запуска мониторинга. "Мусора" хватает.
Задача в следующем: научить систему мониторинга самостоятельно определять сход с основного/обычного маршрута движения. Для этого хочется все существующие точки обработать и получить т.н. мастер-трек. А потом искать ближайшую координату из мастер-трека к получаемой от трекера из машины, и если расстояние больше определенного 2 раза подряд, считать это сходом с маршрута.
Сейчас координаты хранятся в виде XX.XXXXXX и YY.YYYYYY. Т.е. точность шесть знаков после запятой. Мастер-трек должен содержать пять знаков после запятой.
Алгоритм должен отсеивать "мусор", т.е. если вокруг точки, которую мы рассматриваем в радиусе пяти знаков после запятой нет других точек или их меньше определенного количества, то мы считаем точку мусором и не учитываем в расчетах.
Т.е. начать можно с простого обрубания шестого знака после запятой. Потом "убираем" мусорные точки. А далее из оставшихся надо посчитать мастер-трек.
Много вариантов перепробовал и понял, что идеальный вариант - медиана. Но как ее применить к координатам, не знаю.
Коллеги, есть идеи?

21 Авг 2019 в 06:11
122 +1
1
Ответы
1

Для создания мастер-трека из большого набора координат можно использовать следующий алгоритм:

Обрезать шестой знак после запятой во всех координатах.Отфильтровать "мусорные" точки. Для этого можно определить радиус вокруг каждой точки и проверить количество точек в этом радиусе. Если количество точек меньше определенного порога, считать точку мусорной и исключить ее из расчетов.Для каждой оставшейся точки определить ближайшую к ней точку из мастер-трека.После этого вычислить медиану для каждой пары координат (широты и долготы) из точек и их ближайших соседей из мастер-трека.

Используя этот алгоритм, можно создать мастер-трек из большого набора координат и затем использовать его для определения сходов с основного маршрута.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир