Использование сервиса Яндекс.Транспорт
Яндекс транспорт
Яндекс Транспорт — мобильное онлайн приложение, которое позволяет в режиме реального времени следить за передвижениями городского транспорта, включающего в себя не только маршрутки и автобусы, но также трамваи, троллейбусы, электрички, метро, паром, фуникулер, канатную дорогу. Доступны абсолютно все передвижения транспорта в режиме онлайн. Таким образом, можно отследить, где находится необходимый автобус в данный момент и через какое время он прибудет на нужную остановку.
Приложение имеет довольно обширный список крупных городов в различных странах, где показывает все маршруты, линии, остановки и типы транспорта. Используя программу, можно спрогнозировать, когда прибудет автобус, трамвай или троллейбус на определенную остановку, что в свою очередь, позволит сэкономить время ожидания транспорта. Свою работу приложение «Яндекс.Транспорт» осуществляет посредством использования датчиков GRS и Глонасс, которые установлены в общественном транспорте это позволяет максимально точно отслеживать передвижение.
Основные возможности программы Яндекс Транспорт
Основное назначение приложения – информирование о том, где в данный момент находится тот или иной вид городского транспорта. При этом возможность наблюдать за перемещением транспорта, не единственная в программе. Используя приложение для планшета, телефона или компьютера можно получать следующую информацию:
- возможность прогнозировать временной период преодоления расстояния, принимая во внимание ситуации на дорогах, например, пробки;
- в соответствующем разделе приложения можно узнать точное расписание следования одного из видов общественного транспорта, а также предусмотренные маршруты;
- спланировать свой маршрут очень просто, можно узнать не только путь следования транспорта, но и наличие, а также название остановок, на которые он заезжает;
- наблюдать за передвижением нужного троллейбуса, трамвая или автобуса, чтобы своевременно выйти на остановку к прибытию.
Преимущества использования «Яндекс. Транспорт»
Преимуществ использования представленной программы огромное множество, все они описаны выше. Программа удобна, как для жителей города, которые могут планировать свое время, зная точное прибытие транспорта на нужную остановку, так и для иногородних посетителей. Попадая в незнакомый город впервые, возникает масса сложностей с тем, чтобы добраться в определенный пункт назначения, не зная, какими маршрутами идет городской транспорт.
Установленное приложение Яндекс Транспорт позволяет в считанные минуты самостоятельно проложить маршрут, где будет точно указаны возможности прибытия в определенный пункт посредством одного из видов транспорта, в том числе, можно проложить и пешие маршруты.
К дополнительным возможностям и преимуществам можно отнести множество сопутствующей информации, которая доступна владельцам установленного приложения. Например, своевременное информирование о наличии пробки, ДТП или проведение ремонтных работ на определенном участке дороги, позволит максимально удобно проложить маршрут и выбрать способ отправления с учетом экономии времени.
Стоит отметить, что сервис «Яндекс. Транспорт» является уникальным, поскольку аналогов программе практически нет. Это возможность получать практически всю информацию относительно положения вещей на дороге, включая форс-мажорные обстоятельства. Информация, которая предоставляется клиенту, постоянно обновляется в режиме реального времени, таким образом, остается всегда актуальной и точной. В программе заложена возможность не только предоставлять данные, но и прогнозировать передвижение и составление маршрутов, применяя актуальную информацию. По положительным отзывам клиентов, использующих данное приложение, можно с уверенностью сказать о точности расчета относительно времени прибытия транспорта и длительности общего проложенного маршрута.
Отзыв
Очень удобное приложение, скачанное на смартфон. Всегда максимально точно можно рассчитать время прибытия автобуса и выйти на остановку. Больше всего впечатляет, что в программе открываются абсолютно все виды маршрутов на любой из видов общественного транспорта. И даже, если не знать дороги, то можно с легкостью проложить маршрут. Сделать это очень просто, ввести адрес отправления и прибытия, программа сама автоматически рассчитает наиболее удобный способ добраться их одного пункта в другой, при этом вся ненужная информация отсеется. Можно прокладывать несколько маршрутов и давать им разные названия, чтобы маршруты не накладывались один на другой и самому не запутаться. Все проложенные маршруты остаются в памяти, что так же очень удобно. Максимально удобное и полезное приложение.
Как я сделал свой «Яндекс.Транспорт» с расписанием и автобусами
Автор: Михаил Аксенов, .NET Developer, DataArt
С чего все началось
Осенью 2014 года появилась радостная новость о том, что в Воронеже заработал Яндекс.Транспорт, который показывает движение автобусов и троллейбусов. Было очень круто прямо на остановке открыть расписание и узнать, что ваш автобус подойдет через 5 минут.
Но уже через пару месяцев все пошло по вполне предсказуемому сценарию. Поскольку весь транспорт в Воронеже от троллейбуса до маршрутки работает «на наличке», каждый водитель заинтересован в том, чтобы перевезти как можно больше пассажиров. В результате они устраивают гонки между собой.
Новый сервис водители использовали, чтобы следить друг за другом по карте, обгоняя и подрезая конкурентов на дороге. У некоторых начала падать выручка, они стали жаловаться владельцам маршрутов, а те пошли к людям, продающим оборудование с ГЛОНАСС и GPS и отправляющим данные о перемещениях машин в Яндекс. По просьбам хозяев автопарков они информацию отправлять перестали, и автобусы сразу начали исчезать с карты. Сейчас их стало чуть побольше, но это все равно гораздо меньше, чем на самом деле.
Для тех, кому лень читать дальше, предлагаю видео доклада на эту тему:
Для остальных — опишу проект в виде текста.
Где взять данные?
При этом в в Воронеже есть место, где собираются все данные — Центр Организации Дорожного Движения (ЦОДД). У них на сайте есть большое и тяжелое веб-приложение с неотлаженным JavaScript и прочими артефактами, при этом все в нем идет POST-запросами и ничего не кешируется. С помощью самого этого сайта можно запросто положить сервис, который собирает данные о передвижении автобусов.
Там имелась опция, позволяющая ткнуть на карту и узнать, когда придет автобус и каким он будет. При условии, что вы приблизительно попадаете в остановку (± 50 метров). В меню можно было открыть список маршрутов и посмотреть, где именно ездят автобусы, но там была проблема — ездили они странно. Например, по Кольцовской, улице в центре, где особенно не разгонишься, автобус перемещался вперёд и назад со скоростью примерно 200 км/ч.
Почему Python?
Я выбрал Python потому что он классный, батарейки в комплекте, и т. д. А 3.6 потому, что здесь есть форматирование строковых литералов, typing, вот это всё. Давайте посмотрим на то, что я в принципе использовал:
- Многие жаловались, что вбить точное название остановки со всякими знаками препинания очень тяжело. Тогда я реализовал возможность нечеткого поиска и создал для него первый юнит-тест.
- Вся система хостится на Heroku. Бесплатно, поскольку у меня нет базы данных — я надеюсь обойтись базой ЦОДДа. О ее использовании я договорился с Центром, когда понял, что данных, которые я забираю через веб-интерфейс, недостаточно.
- Собственно, хостинг идет через веб-сервер Tornado. Думаю, он знаком каждому, кто сталкивался с веб-запросами в Python.
- Пакет Pytz понадобился мне, потому что сервер Heroku находится в другом часовом поясе, а данные ко мне поступают без указания временной зоны. Поэтому я сам позаботился о локализации.
- Для создания бота я использовал рекомендованную библиотеку Python-telegram-bot. Документация здесь вполне адекватная, и вообще библиотека соответствует требованиям minimum viable product. Изначально весь проект представлял собой Telegram-бота, который в ответ на отправку вашего местоположения присылал расписание автобусов.
- Firebird, бывший Interbase — Open source база данных, с которой, полагаю, многие из вас работали. Конечно, она не такая крутая, как тот же самый PostgreSQL, но для очень большого количества запросов ее достаточно. В нашем случае большего не нужно.
- Caсhetools — очень простой модуль, который позволяет кешировать вычисления. Речь тут, конечно, не о memecached или кешировании веб-страниц, а о тех случаях, когда вам нужна мемоизация на долгие запросы. Просто берете, добавляете соответствующий декоратор — и всё работает. Кеш имеет разные варианты, я использую TTL-версию, который сохраняет данные на указанное время, потому что я знаю, что данные не будут обновляться чаще, чем через определённые промежутки времени (в моём случае — 30 секунд).
Функционал бота
- /nextbus имя остановки — ожидаемое время прибытия;
- /last номера маршрутов через пробел — последние остановки;
- Отправка местоположения — ожидаемое время прибытия для ближайших трех остановок;
- Свободный ввод — номера маршрутов и расстояние до автобусов (при отправке местоположения).
Команды я постарался описать достаточно полно, чтобы люди не спрашивали, как ими пользоваться. Базовых команд по сути две: nextbus, когда вы пишете название остановки, и отправка местоположения.
Функционал сайта
Bеб-сайт я сделал настолько минималистичным, насколько это в принципе возможно. Из сторонних библиотек использовал всего две, для поддержки fetch и promise, потому что старые версии предустановленных браузеров в телефонах не умеют обходиться без них. Если не поддержать эти методы, получится достаточно тяжелая лапша из коллбеков для самих запросов. С fetch все выглядит изящнее.
Собственно, функционал здесь состоит из 4 пунктов:
- Прибытие. Можно просто посмотреть остановку. Нажав на кнопку (ее, кстати, может быть, стоит сделать побольше — я подумаю!), вы отправляете свое местоположение, система ищет три ближайшие к вам остановки и показывает информацию по ним. Можно ввести название остановки и получить информацию по ней. Поскольку вам вряд ли нужны все 20–30 автобусов, которые могут приехать к остановке, вы можете отфильтровать их по маршрутам.
- Автобусы. На второй странице собрана информация по автобусам. Это связано еще с одной историей, подтолкнувшей меня к этому проекту. В один прекрасный день я забыл в автобусе шапку, позвонил в диспетчерскую, объяснил, где это случилось. Диспетчер предложил мне ловить свой автобус в центре, куда он вернется, развернувшись на конечной. Я вспомнил, что у меня есть логин и пароль от системы Центра организации дорожного движения, но оказалось, что отследить местоположение нужной мне машины я через веб-интерфейс все равно не могу. Шапку я вернул, но с большим трудом.
Я подумал, что поиск автобуса мог бы быть гораздо проще. Написал номер маршрута, а система показывает тебе машины на линии, их текущее местоположение и время, когда они проходили остановки по пути. И даже если вы знаете номер маршрута, но вы знаете номер автобуса (такое тоже бывает), вы все равно сможете его найти. - Карта. Карта на сайте без анимации. Здесь можно выбирать автобусы из списка или вводить номера вручную, можно их отфильтровать. На карте могут быть показаны до 600 автобусов, хотя уже после 20 найти что-то в центре становится сложно, просто потому, что маршруты все сконцентрированы здесь. Поэтому лучше ограничивать поиск параметрами более жестко.
- О проекте. Сейчас у проекта есть сайт, есть Telegram-бот, группы в соцсетях.
***
К счастью, Python — это язык с батарейками из коробки. Для несложных вещей, вам даже ничего скачивать не нужно, достаточно внимательно прочитать документацию.
Разумеется, такие сервисы можно делать и для других городов, более того, в некоторых они уже работают. Многое зависит от местного ЦОДД, кое-где, например, в Санкт-Петербурге есть даже API для разработчиков. Но самое главное — горожане, которые хотят менять свой город к лучшему.
Яндекс транспорт Люберцы
На территории России у приложения Яндекс.Транспорт нет ни одного аналога, поэтому оно является уникальным по своей сути и очень популярным у пользователей. В любую минуту с его помощью по карте можно отследить перемещение городских видов транспорта в городе Люберцы Московской области.
Сервис Яндекс транспорт Люберцы в online режиме предоставит информацию о передвижении автобусов, трамваев, троллейбусов и пр. с помощью интерактивной карты города. Создайте маршрут в пределах города Люберцы, и вы моментально узнаете каким видом транспорта лучше воспользоваться, и через какое время он будет на ближайшей к вам остановке. Это позволит сэкономить время и вовремя подъехать к месту следования.
Что может сервис?
С помощью программы от Яндекс вы сможете задавать любой маршрут, быть в курсе, когда подъедет требуемый вам автобус, трамвай, маршрутка, троллейбус или метро. Для этого необходимо:
- активировать раздел «маршруты» (он находится в нижней части прямо посередине);
- заполнить окна «откуда» и «куда»;
- ознакомиться со всеми предложениями, которые выдаст программа. Здесь не только будет информация о видах транспортных средств, которые в ближайшее время подъедут к остановке, где вы находитесь, и откуда должны поехать прямо к месту назначения, но и возможные варианты пересадок;
- если вы предполагаете часто пользоваться этим маршрутом, добавьте его в закладку «мои маршруты», чтобы избавить себя от необходимости каждый раз вводить один и тот же адрес;
- транспортное средство, которым любите пользоваться, добавьте в закладку «мой транспорт», чтобы отслеживать его передвижение по интерактивной карте.
Этим несложным алгоритмом действий могут воспользоваться не только жители Люберцев, но и его гости, у которых возникнет необходимость как-то сориентироваться в незнакомом городе. Сервис обладает интуитивным интерфейсом, поэтому пользователю останется только указать адрес следования, а его местонахождение найдет сама программа по GPS.
Как начать пользоваться?
Для того, чтобы использовать сервис Яндекс транспорт в городе Люберцы необходимо:
- скачать приложение (бесплатно!) на смартфон, поддерживающий систему Айфон или Андроид;
- или открыть Яндекс карты в любом браузере и активировать режим «Движущийся транспорт»;
- вписать адреса следования или указать их на карте;
- ознакомиться с предложенными вариантами и временем, которое будет затрачено на весь путь;
- выбрать оптимальный маршрут, еще раз отследить его на карте и уточнить время прибытия транспортного средства, которым собираетесь воспользоваться;
- все остановки на пути вашего следования будут обозначены.
Интерфейс приложения — интуитивно понятный. Сама программа доступна не только для смартфонов, но и для просмотра общественного транспорта Люберцев на ноутбуке или стационарном компьютере в браузере интернета. Это позволяет владеть информацией о следовании автобусов, маршруток, трамваев, метро, троллейбусов и даже электричек в любое время. Вы забудете, что такое простаивать на остановках в ожидании нужного автобуса или маршрутки и обращаться к прохожим с вопросом, как вам добраться до места назначения, на который большинство не будет знать ответа.
Где скачать приложение для телефона?
Всем без исключения предоставляется возможность установить приложение Яндекс Транспорт абсолютно бесплатно. Единственное, мобильные устройства должны поддерживать ОС Андроид или Айфон.
Воспользуйтесь ниже приведенными ссылками, чтобы скачать программу на свое мобильное устройство бесплатно:
Идея «Яндекс.Транспорта» возникла у нас больше трех лет назад. Тогда метки автобусов появились в наших мобильных «Яндекс.Картах» как отдельный слой. Они были доступны в шести регионах, где мы договорились о получении данных от перевозчиков: Казань, Омск, Нижний Новгород, Пермь, Московская область и Новосибирск. Но тогда «Картами» с их слоем пробок и планировщиком маршрутов пользовались в основном автомобилисты. Чтобы не создавать им помех, слой общественного транспорта пришлось зарыть довольно глубоко. Поэтому, наверное, большой аудитории у этого слоя в «Яндекс.Картах» не было. Хотя понятно, что в России пешеходов гораздо больше, чем автомобилистов, к тому же многие во время опросов отмечали, что им не хватает сервиса про общественный транспорт.
Елизавета Семяновская, руководитель сервиса «Яндекс.Транспорт» Фотография: Даниил Аврех Дело в том, что пользователю на экране смартфона проще иметь одну кнопку для решения понятной задачи. Поэтому для передвижения на автомобиле мы сделали «Яндекс.Навигатор», на городском транспорте — «Яндекс.Транспорт» (а недавно появился «Яндекс.Парковки» для еще одной задачи — найти и оплатить стоянку в Москве).
«Яндекс.Транспорт» работает так. Каждая машина оборудована устройствами GPS и ГЛОНАСС, которые раз в 20–60 секунд передают по мобильному интернету сигналы о своем местоположении на сервер перевозчика. Установкой этих устройств занимаются сами перевозчики, муниципальные и частные. Сейчас приложению в Москве доступна информация о 758 автобусных, 80 троллейбусных и 38 трамвайных маршрутах, а также о 350 маршрутах «Автолайна». Мы получаем от перевозчиков ID машины, номер маршрута, тип транспорта (автобус, троллейбус, трамвай или маршрутка), время сигнала и координаты, широту и долготу. У нас есть траектории маршрутов всех номеров, и мы перепроверяем, действительно ли автобус 28 едет по маршруту автобуса 28. Это делается для того, чтобы исключить транспорт, который по каким-то причинам съехал со своего маршрута.
Автобусы-троллейбусы, данные которых успешно прошли проверку, показываются на карте в виде меток. Несмотря на отрывистые сигналы (напомню: раз в 20–60 секунд), машины в приложении плавно двигаются по карте. За эту плавность отвечает наш прогнозатор — алгоритм, который учитывает пробки и предыдущую историю движения метки (как этой конкретной, так и других на маршруте) и позволяет нам довольно правдоподобно двигать эту метку в промежутках между сигналами. Этот же прогнозатор отвечает за расчет прибытия транспорта на остановку.
Пока в «Яндекс.Транспорте» не было московских маршрутов, мы получали от москвичей проклятия, угрозы и требования. После подключения Москвы характер отзывов сильно изменился. Люди пишут, что теперь не мерзнут на остановке, выходят из дома, офиса или школы к моменту прибытия автобуса и вообще чувствуют себя с этим приложением всесильными. В Москве у «Яндекс.Транспорта» конкурентов пока нет. В некоторых российских городах, где данные перевозчиков доступны для разработчиков, аналоги есть. Это «Умный транспорт», «ЕТранспорт», Spb Transport Online. В мире тоже есть похожие приложения, но они скорее решают общую задачу, как добраться куда-либо. Это WikiRoutes, Moovit, Trafi, CityMapper, Transit (сюда же можно добавить Google Maps и его маршруты общественного транспорта едва ли не для каждого большого города на планете. — Прим. ред.). Но, как правило, в них нет возможности смотреть сразу на весь транспорт на карте. Если они и знают о живых данных, то показывают только метки по выбранному маршруту или прогноз прибытия на конкретную остановку.
У нас, разумеется, еще много планов по развитию сервиса, раскрыть которые мы не можем. Но я на всякий случай напомню всем неравнодушным, что еще у нас есть «Паровозики» и «Самолетики».