Как это делается Как работает приложение «Яндекс.Транспорт»
«Воздух» расспросил «Яндекс» про трюк в приложении «Транспорт», благодаря которому автобусы на его карте плывут, как в волшебном сне, — и как вообще эта полезная программа работает.
Идея «Яндекс.Транспорта» возникла у нас больше трех лет назад. Тогда метки автобусов появились в наших мобильных «Яндекс.Картах» как отдельный слой. Они были доступны в шести регионах, где мы договорились о получении данных от перевозчиков: Казань, Омск, Нижний Новгород, Пермь, Московская область и Новосибирск. Но тогда «Картами» с их слоем пробок и планировщиком маршрутов пользовались в основном автомобилисты. Чтобы не создавать им помех, слой общественного транспорта пришлось зарыть довольно глубоко. Поэтому, наверное, большой аудитории у этого слоя в «Яндекс.Картах» не было. Хотя понятно, что в России пешеходов гораздо больше, чем автомобилистов, к тому же многие во время опросов отмечали, что им не хватает сервиса про общественный транспорт.
Елизавета Семяновская, руководитель сервиса «Яндекс.Транспорт»Дело в том, что пользователю на экране смартфона проще иметь одну кнопку для решения понятной задачи. Поэтому для передвижения на автомобиле мы сделали «Яндекс.Навигатор», на городском транспорте — «Яндекс.Транспорт» (а недавно появился «Яндекс.Парковки» для еще одной задачи — найти и оплатить стоянку в Москве).
«Яндекс.Транспорт» работает так. Каждая машина оборудована устройствами GPS и ГЛОНАСС, которые раз в 20–60 секунд передают по мобильному интернету сигналы о своем местоположении на сервер перевозчика. Установкой этих устройств занимаются сами перевозчики, муниципальные и частные. Сейчас приложению в Москве доступна информация о 758 автобусных, 80 троллейбусных и 38 трамвайных маршрутах, а также о 350 маршрутах «Автолайна». Мы получаем от перевозчиков ID машины, номер маршрута, тип транспорта (автобус, троллейбус, трамвай или маршрутка), время сигнала и координаты, широту и долготу. У нас есть траектории маршрутов всех номеров, и мы перепроверяем, действительно ли автобус 28 едет по маршруту автобуса 28. Это делается для того, чтобы исключить транспорт, который по каким-то причинам съехал со своего маршрута.
Автобусы-троллейбусы, данные которых успешно прошли проверку, показываются на карте в виде меток. Несмотря на отрывистые сигналы (напомню: раз в 20–60 секунд), машины в приложении плавно двигаются по карте. За эту плавность отвечает наш прогнозатор — алгоритм, который учитывает пробки и предыдущую историю движения метки (как этой конкретной, так и других на маршруте) и позволяет нам довольно правдоподобно двигать эту метку в промежутках между сигналами. Этот же прогнозатор отвечает за расчет прибытия транспорта на остановку.
Пока в «Яндекс.Транспорте» не было московских маршрутов, мы получали от москвичей проклятия, угрозы и требования. После подключения Москвы характер отзывов сильно изменился. Люди пишут, что теперь не мерзнут на остановке, выходят из дома, офиса или школы к моменту прибытия автобуса и вообще чувствуют себя с этим приложением всесильными. В Москве у «Яндекс.Транспорта» конкурентов пока нет. В некоторых российских городах, где данные перевозчиков доступны для разработчиков, аналоги есть. Это «Умный транспорт», «ЕТранспорт», Spb Transport Online. В мире тоже есть похожие приложения, но они скорее решают общую задачу, как добраться куда-либо. Это WikiRoutes, Moovit, Trafi, CityMapper, Transit (сюда же можно добавить Google Maps и его маршруты общественного транспорта едва ли не для каждого большого города на планете. — Прим. ред.). Но, как правило, в них нет возможности смотреть сразу на весь транспорт на карте. Если они и знают о живых данных, то показывают только метки по выбранному маршруту или прогноз прибытия на конкретную остановку.
У нас, разумеется, еще много планов по развитию сервиса, раскрыть которые мы не можем. Но я на всякий случай напомню всем неравнодушным, что еще у нас есть «Паровозики» и «Самолетики».