Центр организации
дорожного движения

Заказчик:
Министерство Транспорта Ульяновской Области

О проекте:

Нашей команде разработчиков была поставлена задача реализовать портал центра организации дорожного движения, позволяющий в реальном времени отслеживать обстановку на дорогах Ульяновской области.

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

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Обработка полученных данных в реальном времени,
отображение на карте более 3000 объектов мониторинга -
не самая тривиальная задача.

Все начинается с GPS-трекера, установленного на каждое маршрутное транспортное средство. Данные с них попадают к нам на микросервис, реализующий поддержку EGTS, Wialon IPS и SOAP протоколов, написанный на NodeJS и способный обрабатывать более 50 тысяч соединений в секунду (было проведено нагрузочное тестирование). Затем данные попадают в очередь RabbitMQ, разбираются и обрабатываются Celery воркерами, после чего передаются на фронтенд по WebSocket's.

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

С точки зрения архитектуры БД - хранение точек маршрута задача несложная и представляет из себя реализацию двусвязного списка, но т.к. Нам необходимо всегда иметь возможность узнать следующую ближайшую точку, уметь строить полигон по последним гео-данным, полученным от рессивера, задача приобретает новый характер и становится разновидностью задачи поиск ближайшего соседа.

Для ее решения мы выбрали готовое решение - дополнение PostGIS для СУБД PostgresQL и GeoDjango, что дало возможность эффективно делать запросы к БД. Как следствие уменьшилось время работы алгоритма, реализующего функционал отслеживания маршрутных транспортных средств, вовремя фиксируя их отставание или опережение графика, а также нештатные ситуации (аварии, пробки и т. д.).

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

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

БУДЕМ
НА СВЯЗИ

+7 (991) 115-27-79

Заказать обратный звонок

Расскажите о вашей задачи и мы предложим несколько вариантов ее решения:

Нажимая на кнопку, вы даёте согласие на обработку персональных данных и соглашаетесь с Политикой конфиденциальности