Как называется программа где едет автобус

Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.

Меня зовут Антон Овчинкин, я руководитель группы разработки пешеходной и транспортной навигации. Сегодня я расскажу, что у «Транспорта» под капотом, какие алгоритмы отвечают за то, чтобы автобусы появлялись на карте, двигались по ней плавно и реалистично, а прогноз был максимально точным.

Транспорт подаёт сигналы

Всё начинается с GPS-приёмников — они установлены в транспорте и с помощью спутников примерно раз в минуту определяют координаты. Эти приёмники не принадлежат Яндексу, их устанавливают сами перевозчики. Пока они установлены не везде, поэтому некоторые автобусы могут быть не видны на карте.

Как узнать где едет автобус онлайн

Определив свою геопозицию, приёмник отправляет этот сигнал на сервер партнёров Яндекса. Партнёры каждую секунду присылают нам сотни таких сигналов, и они попадают в сервис приёма реалтайм-данных.

Там сигналы проходят базовую проверку — важно убедиться, что они корректны: время соответствует реальному, а координаты находятся в пределах допустимых значений. После этого данные нужно привести к единому формату, ведь у разных партнёров разный формат описания позиций автобусов. Это может быть, например, JSON или XML.

Потом сигналы отправляются в сервис-обработчик. Чтобы сбалансировать нагрузку, сервис приёма реалтайм-данных распределяет их между серверами.

В систему ежедневно приходят сотни миллионов сигналов, и обработать их на одном сервере практически невозможно. Во-первых, для этого потребовалось бы слишком много вычислительных ресурсов, то есть времени CPU. Во-вторых, для качественной работы алгоритму нужно хранить всю информацию о передвижении автобусов в течение дня в оперативной памяти, а её размер сильно ограничен.

Но даже если бы все данные помещались на один сервер, вопросы масштабируемости и надёжности оставались бы нерешёнными.

Масштабируемость — важное свойство для такой системы. Количество автобусов постоянно увеличивается, транспорт из старого парка оснащается GPS-приёмниками, появляются партнёры в новых городах. В итоге тех мощностей, которых ещё вчера хватало, завтра может оказаться недостаточно.

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

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

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

Кстати, когда «Транспорт» только появился, сервис хранил информацию не в оперативной памяти, а в базе данных. Так любой сервер мог обрабатывать любой запрос, а при его сбое ничего не ломалось, потому что сигналы и так приходили на разные серверы за счёт общего стейта в базе. Но у этого подхода оказался минус: такую систему не получается эффективно масштабировать. Сколько бы серверов ни добавлялось в базу, им всем требовалось дополнительное сетевое взаимодействие.

Сервис-обработчик распутывает маршрутную сеть

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

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

Читайте также:
Куда пропала программа своя игра

Если автобус только выехал с конечной, сложно понять, по какому маршруту он поедет. Здесь помогает алгоритм, который мы назвали «привязка». Кроме текущего сигнала, он учитывает всю историю геопозиций автобуса, а ещё информацию о маршруте: его положение на карте, расположение остановок и расписание.

Когда сервис получает новый сигнал, он пытается решить, к какому варианту маршрута его лучше привязать. Такие варианты мы называем кандидатами привязки.

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

Рассчитываем, сколько ждать на остановке

Двигаемся дальше — в прямом и переносном смысле. Следующий шаг — оценить скорость автобуса. Так мы сможем предсказать, когда он приедет на каждую остановку на маршруте. А пользователи смогут нажать на эту остановку в приложении и увидеть, сколько ещё ждать автобус.

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

Дальше каждый участок нужно проанализировать. Для этого используем исторические данные о движении на этом участке, но только те, что соответствуют текущим условиям: дню недели, времени суток.

Важно учитывать и дорожную инфраструктуру: это может быть многополосная магистраль или маленькая улочка, прямой участок или извилистый, с поворотом, разворотом, круговым движением или светофорами. Всё это сказывается на скорости и времени движения. Ещё один фактор — положение участка относительно остановок. Понятно, что перед остановкой автобус будет тормозить, а после — разгоняться.

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

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

Учитываем пробки в прогнозе

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

Сложность в том, что технически транспорт и пробки находятся на разных слоях карты. При этом траектории дорог и маршруты транспорта постоянно меняются. Чтобы информация из одного слоя попала на другой и была актуальна, нужно ежедневно выполнять «привязку» данных, то есть соотносить между собой дороги с двух этих слоёв.

Когда связь между слоями найдена, нужно сохранить её в эффективную структуру, которая позволит максимально быстро обновлять данные о дорожной ситуации по маршрутам транспорта. В частности, она должна позволять быстро получать все пробки, например, между двумя остановками, и при этом обновлять их десятки раз в час в соседнем потоке исполнения.

Транспорт едет по карте

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

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

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

Читайте также:
Для просмотра содержимого любых серверов www пользователь должен иметь программу просмотра www

Чтобы понять, где автобус едет на самом деле, и корректно показать его, придётся немного заглянуть в будущее. Поэтому положение, которое видно на карте «в реальном времени», на самом деле наш прогноз.

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

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

Чтобы этого избежать, мы используем алгоритм под названием «смузинг»: с его помощью один прогноз постепенно догоняет другой. Например, если новый прогноз оказался впереди, мы не резко двигаем метку, а немного ускоряем старый прогноз, чтобы он постепенно и без резких скачков догнал новый.

Вместо заключения

Чтобы алгоритм постоянно совершенствовался, он должен учиться на своих ошибках. А чтобы найти эти ошибки и понять, удалось ли их исправить, нужна метрика и регулярная оценка качества.

Когда транспорт приезжает на остановку, мы анализируем наши предсказания и сравниваем прогноз прибытия с фактом. Особенно важны популярные остановки и маршруты, которыми пользуется большое количество пассажиров. Сравнив реальное время с нашим прогнозом, мы можем оценить качество работы алгоритма и сервиса в целом.

Также алгоритм принимает это время за эталон обучения модели. Так с каждым днём он становится точнее, чтобы поездки на общественном транспорте становились предсказуемыми.

  • яндекс
  • общественный транспорт
  • карты
  • машинное обучение
  • Блог компании Яндекс
  • Геоинформационные сервисы
  • Машинное обучение
  • Транспорт
  • Урбанизм

Источник: habr.com

Яндекс.Транспорт онлайн для компьютера

Яндекс.Транспорт – приложение для мобильных устройств. Оно отображает передвижения общественного транспорта в режиме реального времени. Его можно скачать для устройств iOS и Android. Для работы приложения необходим интернет. К сожалению, версии для компьютера нет, но можно обойти это ограничение, поставив на компьютер эмулятор телефона.

Почему Яндекс.Транспорт онлайн так популярен

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

Приложение Яндекс.Транспорт

Поддерживается уже более 70 городов, из них большая часть российских. Но присутствует также Казахстан, Украина, Беларусь, Будапешт и другие. География постоянно расширяется.

Работает это так: на общественном транспорте устанавливаются приборы ГЛОНАСС/GPS и сигналы от них передаются в приложение. Конечно, не всякая частная маршрутка передаст сигнал, но основной транспорт оборудован приборами. Да и маршрутки часто оборудованы – недавно ехала из аэропорта Петербурга, так вот маршрутки на карте отображались тоже. Я ими воспользовалась.

Я построила сложный маршрут с пересадкой, причем предложено было несколько путей передвижения. Выбрала самый короткий по времени.

Как пользоваться Яндекс.Транспорт на смартфоне

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

Скачайте приложение в Google Маркете или App Store, в зависимости от вашего телефона. Приложение бесплатно.

Запустите приложение. Вы увидите, как передвигаются автобусы, троллейбусы, трамваи и маршрутки. Все они пронумерованы. Если щелкнуть автобус, появится информация о его пути: номер маршрута, куда и откуда идет, через сколько окажется на вашей остановке.

Буквой «Я» обозначено ваше местоположение. Если вы пользовались Яндекс картами, то интерфейс вам знаком.

С недавних пор появилась возможность построить маршрут.

Есть еще настройки: в них можно указать, какой вид транспорта отображать или скрыть.

Читайте также:
Timeweb настройка почтовой программы

Вот тут неплохо рассказывается о приложении:

Запускаем онлайн Яндекс.Транспорт на компьютере

Конечно, Яндекс.Транспорт заточен под смартфон, поскольку в приложении используется ваше местонахождение в реальном времени.

Но иногда хочется построить маршрут заранее на большом экране, изучить варианты проезда и учесть пересадки. Это полезно, если вам придется возвращаться из аэропорта в незнакомом городе в общественном транспорте. Да мало ли случаев.

В общем для просмотра маршрутов на большом экране нужно поставить эмулятор Bluestacks, который имитирует операционную систему Android на компьютере. Иначе говоря, предоставляет вам эмуляцию телефона. Причем это возможно как для компьютера, работающего на Windows, так и на Mac – эмулятор можно поставить на любой. После установки эмулятора с него заходите на Play Маркет, скачиваете оттуда Яндекс.Транспорт и запускаете.

Пошаговая инструкция

  1. Скачайте эмулятор Bluestacks тут. Это эмулятор операционной системы Андроид.
  2. Запустите скачанный файл. Установка займет минут 15 и не потребует много ума. Просто следуйте инструкциям.
  3. Запустите эмулятор. Вы увидите нечто, напоминающее интерфейс телефона. Запуск долгий (секунд 10-30), потому что эмулятор требует много компьютерной мощности.
  4. Зайдите в «Управление контактами» и создайте аккаунт Google, либо введите данные существующего аккаунта. Google Аккаунт нужен всегда при скачивании программ с Play Маркета, а нам как раз надо будет скачивать оттуда. Ввод данных аккаунта Google
  5. Дальше будет предложена аутентификация Google Аккаунта, для этого введите цифры с картинки.
  6. Откройте браузер. Будет предложено выбрать Play Маркет вместо браузера – выберите Play Маркет. Открыть Play Маркет
  7. Введите в поисковой строке «Яндекс Транспорт». Поиск приложения
  8. Установите найденное приложение. Установка Яндекс.Транспорт
  9. На рабочем столе эмулятора Bluestacks появится иконка Яндекс.Транспорт.
  10. Запустите приложение, щелкнув иконку.
  11. Подтвердите Google Аккаунт еще раз. Это последнее подтверждение, дальше приложение Яндекс.Транспорт можно будет запускать без подтверждений.

Дельный рассказ про обход с помощью эмулятора (начиная со второй минуты):

Заключение

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

Источник: itlang.ru

Как настроить Яндекс Транспорт чтобы показывались автобусы

Не каждый знает, что в сервисе Яндекс.Транспорт можно отслеживать передвижение ТС того маршрута, который нужен. Стоит подробно рассмотреть, как настроить Яндекс Транспорт, чтобы видеть автобусы в онлайн режиме.

Как настроить Яндекс Транспорт, чтобы видеть автобусы

Если необходимо включить отображение движения общественного транспорта, нужно в настройках приложения выбрать «Метки транспорта» и нажать на кнопку. Для отключения этого режима необходимо нажать ее повторно.

Метки транспорта на карте

Далее обратите внимание на настройку «Виды транспорта».

Виды транспорта, которые можно видеть

Каждое ТС отображено в виде значка. В режиме реального времени по карте можно увидеть перемещение:

  • автобусов;
  • троллейбусов;
  • трамваев;
  • маршрутного такси.

Как настроить и включить

Если требуется настроить отображение транспортных средств, то для этого необходимо сделать следующее:

  1. Зайти в меню и выбрать «Настройки» и среди открывшихся пунктов найти «Метки транспорта». Чтобы выбрать определенный его вид, понадобится нажать на его значок. Включить метки транспорта
  2. Затем перейти к карте и на ней выбрать нужное вам ТС, кликнув мышью по его значку.
  3. Перед вами откроется линия маршрута того ТС, который вы выбрали. На этой линии будут указаны конечные и промежуточные остановки на пути его следования. Линия маршрута ТС
  4. Нажмите на значок той остановки, которая вам нужна. Информационная карточка остановкиМоментально перед вами откроется информационная карточка, где будет указано:
  • как называется эта остановка;
  • значки подскажут, какие виды общественных ТС проходят здесь. Также будут обозначены их номера.
  • сколько времени (в минутах) осталось до прибытия на данную остановку всех видов общественных ТС, которые следуют по этому маршруту.

Выходит, чтобы увидеть движущиеся автобусы вашего города сначала войдите в настройки приложения Яндекс.Транспорт и активируйте кнопку «Метки транспорта», сделайте выбор в пользу одного из представленных значков (автобуса, троллейбуса и пр.) и ознакомьтесь с линией его маршрута.

Вы сможете отслеживать перемещение и точно знать, где в данный момент находится ваш автобус/либо другое ТС в online-режиме.

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

Источник: karta-transport.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru