В этом году в Москве открылась новая станция метро «Деловой центр», вот-вот должны заработать ещё две: «Лесопарковая» и «Битцевский парк». Пока в вагонах метро готовятся переклеивать схемы, Яндекс.Метро учится строить новые маршруты — скоро от «Новоясеневской» до «Бульвара Дмитрия Донского» можно будет доехать на метро всего за 15 минут по прямой. Новые станции, новые маршруты — новое Яндекс.Метро.
Для сервиса, который появился в 2007 году, это первое крупное обновление — дизайна и технологической основы одновременно. В новой версии доступны масштабируемые схемы метрополитена пяти городов: Москвы, Санкт-Петербурга, Киева, Харькова и Минска. В любом из них Яндекс.Метро позволяет построить маршрут и рассчитать примерное время в пути.
Простое на вид, Яндекс.Метро устроено гораздо сложнее, чем выглядит. Одна только карта состоит из четырёх слоёв. Первый слой предназначен для статичных объектов — в будущем там будут отображаться реки и заметные элементы ландшафта. На втором слое изображена сама схема метро. На четвёртом строится маршрут, а третий промежуточный слой служит для размытия карты и выделения маршрута.
Для построения маршрута в Яндекс.Метро используется граф всех путей в метро, а также данные обо всех станциях, пересадках и перегонах. Когда вы указываете начальную и конечную станции пути, алгоритм рассчитывает все возможные варианты маршрута, выбирая из них лучший. При выборе учитывается не только скорость, но и комфорт: кому-то важнее добраться до точки назначения быстро, а кто-то предпочитает путь с наименьшим количеством пересадок. Яндекс.Метро взвешивает все эти факторы и предлагает оптимальный маршрут.
Мобильные приложения Яндекс.Метро для iOS, Android, Windows Phone и других популярных платформ исторически опережали веб-версию сервиса в развитии, так как появились позднее. Теперь приложения и веб-версия будут идти в ногу: новая технологическая основа позволяет строить маршруты в офлайне и быстрее вносить изменения, например — добавлять новые станции по мере их открытия.
Кстати, не все пользователи Яндекс.Метро знают, что мобильное приложение не только строит маршруты, но и подсказывает вагон для быстрой пересадки с одной линии на другую. Ну или вагон, в который набьётся больше всего людей в час пик, — зависит от точки зрения.
P.S. Технические подробности разработки нового Яндекс.Метро читайте в блоге Яндекса на Хабрахабре.