Расписание автобусов тк конструктор

Обновлено: 16.05.2024

Областные маршруты пригородов Москвы, показанные на схеме:
Список автобусов города Химки:
Автобус 1 - ст. Химки - 2-й микрорайон - ст. Химки
Автобус 3 - ст. Химки - ул. Дружбы - ст. Химки
Автобус 4 - Мега - ул. Павлова
Автобус 5 - ст. Химки - Платформа Левобережная
Автобус 5л - Платформа Левобережная - Совхозная улица
Автобус 8 - ст. Химки - ул. Павлова - ст. Химки - ул. Павлова
Автобус 10 - ул. Мичурина/Мишино - Мега
Автобус 11 - ст. Химки - ул. Шевченко - Ивакино
Автобус 14 - ст. Химки - ул. Заводская - Вашутино - Ивакино
Автобус 14к - ст. Химки - мкрн. "Солнечная система"
Автобус 22 - ст. Химки - Химки (м/р Сходня) - пригородный
Автобус 26 - ст. Химки - Красногорск (пл. Маяковского)
Автобус 27 - ст. Химки - Химки (м/р Новогорск)
Автобус 28 - ст. Химки - Химки (Больница №119)
Автобус 29 - ст. Химки - Долгопрудный (платф. Хлебниково)
Автобус 30 - ст. Химки - Химки (Подрезково) - пригородный
Автобус 32 - ст. Долгопрудная - Проспект Дpyжбы
Автобус 32с - Улица Дpyжбы - Совхозная улица
Автобус 35 - Химки (ст. Сходня) - Перепечинское кладбище
Автобус 36 - Химки (ст. Сходня) - Лунево
Автобус 40 - Химки (платф. Фирсановка) - сан. Мцыри
Автобус 41 - Химки (ул. Дружбы) - ст. Лобня
Автобус 42 - ст. Химки - Химки (Плотина) - пригородный
Автобус 43 - ст. Химки - Международное шоссе - Химки (Ивакино)
Автобус 44 - Химки (ст. Сходня) - Круглое озеро - пригородный
Автобус 50 - Химки (Подрезково) - Химки (м/р Новогорск)
Автобус 51 - ст. Химки - ТЦ “МЕГА”
Автобус 62 - Станция Химки - Клязьма (часть рейсов до аэропорта "Шереметьево")
Автобусы 342, 343, 344, 344с, 345, 370, 383, 434, 436, 443, 465, 482, 484 -
в списке маршрутов Москвы

Список автобусов города Красногорск:
Автобус 26к - метро "Волоколамская" - Путилково
Автобус 32 - Красногорск (ст. Павшино) - Сабурово
Автобус 34 - Красногорск (ст. Павшино) - Тимошкино
Автобус 35 - Красногорск (ст. Павшино) - Нефедьево
Автобус 520 - Красногорск (ст. Павшино) - Новый
Автобус 806 - ст. Павшино - м/р Чернево
Автобус 833 - ст. Павшино - платф. Опалиха
Автобус 845 - ст. Павшино - платф. Красногорская
Автобус 852 - Красногорск (ст. Павшино) - Красногорская птицефабрика
Автобус 891 - Красногорск (Чернево) - Госпиталь
Автобусы 32э, 372, 436, 436п, 540, 542, 542п, 575 - в списке маршрутов Москвы

Список автобусов города Мытищи:
Автобус 1 - Челюскинский - ул. Сукромка
Автобус 2 - Тайнинское - ул. Борисовка
Автобус 3 - платформа Перловская - 4-я Парковая улица; ст. Мытищи - 4-я Парковая улица
Автобус 4 - ст. Мытищи - НИИОХ
Автобус 5 - Станция Мытищи - микрорайон Леонидовка
Автобус 7 - ст. Мытищи - Тайнинское
Автобус 10 - микрорайон Леонидовка - ул. Сукромка
Автобус 11 - ст. Мытищи - 6-й микрорайон
Автобус 15 - ст. Мытищи - Челобитьево
Автобус 17 - Станция Мытищи - 4-я Парковая улица
Автобус 19 - 14-й микрорайон - МГУ леса
Автобус 22 - ст. Мытищи - пос. Пироговский
Автобус 23 - ст. Мытищи - Пестово
Автобус 24 - ст. Мытищи - ст. Долгопрудная
Автобус 25 - ст. Мытищи - ст. Лобня
Автобус 26 - ст. Мытищи - Чиверево
Автобус 31 - ст. Мытищи - Марфино
Автобусы 314, 419 - в списке маршрутов Москвы

Список автобусов городов Королёв и Щёлково:
Автобус 1 - ст. Подлипки - ул. Силикатная
Автобус 2 - ст. Подлипки - ул. Силикатная
Автобус 5 - ул. Мичурина - ст. Подлипки
Автобус 6 - ст. Болшево - Оболдино
Автобус 7 - ст. Болшево - Торфпредприятие
Автобус 9 - Гастроном - ЦНИИМАШ
Автобус 24 - Микрорайон Заречный (Щёлково) - Платформа Загорянская
Автобус 28 - Королёв (ул. Силикатная) - ст. Мытищи
Автобус 36 - Щёлково - Оболдино
Автобус 48 - Королев (ст. Болшево) - платф. Загорянская
Автобус 392 - в списке маршрутов Москвы

Список автобусов города Реутов:
Автобус 142 - Железнодорожный (Агрогородок) - Москва (м. Новокосино) - ст. Реутово
Автобус 142А - 10 микрорайон - метро "Новокосино"
Автобусы 14, 15, 17 - в списке маршрутов Москвы, 22, 28 - Балашихи.

Список автобусов города Балашиха:
Автобус 5 - Улица Чехова - Платформа Салтыковская
Автобус 8 - Автостанция Южная - Церковь Рождества Богородицы
Автобус 10 - Автостанция "Южная" - Микрорайон 1-го Мая
Автобус 15 - Автостанция Южная - Солнышко
Автобус 16 - Улица Объединения (Балашиха-2) - ТЦ МаксСити (Лента)
Автобус 17 - Автостанция "Южная" - Балашихинское шоссе
Автобус 19 - Зелёная улица - Автостанция Южная
Автобус 22 - Улица Чехова (Балашиха-3) - Платформа Никольское
Автобус 28 - Станция Реутово - Улица Объединения (Балашиха-2)
Автобус 31 - Улица Объединения (Балашиха-2) - Кладбище
Автобус 32 - Микрорайон Заря - Автостанция Звёздная

Список автобусов города Люберцы:
Автобус 1 - ст. Люберцы - cт. Люберцы
Автобус 2 - ст. Люберцы - 115 квартал - ст. Люберцы
Автобус 4 - ст. Люберцы - ул. Космонавтов
Автобус 5 - ст. Люберцы - ст. Панки
Автобус 11 - Метро "Котельники" - Люберцы, микрорайон Красная Горка
Автобус 20 - Дзержинский (пл. Святителя Николая) - ст. Люберцы
Автобус 21 - ст. Люберцы - Дзержинский (Лес)
Автобус 26 - ст. Люберцы - Котельники (м/р Силикат)
Автобус 27 - ст. Люберцы - Котельники (м/р Белая Дача)
Автобус 31 - ст. Люберцы - Мотяково
Автобус 41 - ст. Люберцы - Новолюберецкое кладбище
Автобус 78 - Улица Барыкина - Поликлиника
Автобус 453 - ст. Люберцы - Москва (платф. Ухтомская)
Автобусы 323, 346, 352, 354, 373, 414, 431, 474, 475, 501 - в списке маршрутов Москвы
Автобусы 22, 25 - в списке маршрутов Лыткарино.

Список автобусов города Дзержинский:
Автобус 1 - агрофирма Нива - Университет "Угреша"
Автобусы 305, 347, 904 - в списке маршрутов Москвы
Автобусы 20, 21 - в списке маршрутов Люберец

Список автобусов города Лыткарино:
Автобус 1 - Автостанция - Набережная ул. - Военкомат
Автобус 2 - Петровское - Набережная ул.
Автобус 22 - Лыткарино (Автостанция) - Островцы - ст. Люберцы
Автобус 25 - Лыткарино (6 м/р) - Волкуша - ст. Люберцы
Автобус 29 - Лыткарино (Автостанция) - ст. Томилино
Автобус 83 - Лыткарино - В. Мячково
Автобус 2022 - Лыткарино (Автостанция) - Тепличный комбинат
Автобус 348 - в списке маршрутов Москвы

Список автобусов города Видное:
Автобус 2 - платформа Расторгуево - Ольгинская улица
Автобус 3 - платформа Расторгуево - Видное (МКГЗ)
Автобус 6 - платформа Расторгуево - Мебельный магазин
Автобус 7 - проспект Ленинского Комсомола - Ольгинская улица
Автобус 8 - Ермолино - Платформа Расторгуево, Ермолино - Площадь
Автобус 24 - Видное - ст. Ленинская
Автобус 27 - ст. Ленинская - Мещерино
Автобус 29 - Видное (Площадь) - Володарского
Автобус 35 - Видное (ПЛК) - Калиновка
Автобус 44 - Слобода - Видное (ст. Расторгуево)
Автобус 59 - Платформа Расторгуево - Стройиндустрия (станция Подольск)
Автобусы 355, 356, 364, 367, 379, 439, 471, 1039, 1040, 1042 - в списке маршрутов Москвы

тц конструктор как добраться общественным транспортом?

Торговый центр "Конструктор" расположен по следующему адресу в Москве: МКАД, 25-й километр, владение 1.

Есть своя группа в "ВКонтакте". Ссылка на страницу.

Торговый центр работает каждй день с 10 утра до 9 вечера.

Добраться до ТЦ можно следующим образом:

на метро доезжаем до остановки "Домодедовская". Около магазина "Мебельгранд" будет остановка бесплатной маршрутки, которая возит в ТЦ "Конструктор".


Добраться до ТЦ Конструктор можно на собственном автомобиле или общественном транспорте.

Данный ТЦ расположен на внешней стороне МКАД в районе 25-го километра, вот карта расположения:


Можно в поисковике навигатора просто набрать: ТЦ конструктор.

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

Маршрутное такси начинают ездить с 9:45 и ходят они до 20:20.

Вот иснтрукция, как сесть на эту маршрутку от метро Домодедовская:


Если вас интересует расписание маршруток, то его можно увидеть внизу:


Время работы ТЦ Конструктор: начало работы 10:00 и закрывается магазин в 21:00.


Адрес ТЦ - Москва, 25 километр МКАД, Внешняя сторона,

От станции метро Домодедовская (выходить из последнего вагона от центра) ходит бесплатное маршрутное такси к ТЦ.

На авто в - районе 25 км установлена стела ТЦ с надписью «въезд». Поворот обозначен стрелками.

текст при наведении

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

Да и кроме этого, туда ходят и такси, но их режим перевозки пассажиров, ограничен временным интервалом : с 9:45 и до 20:20.

Показать ТЦ «Конструктор», Сельское Поселение Совхоз Имени Ленина, на карте

Карта ТЦ «Конструктор»

Маршруты до ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина на общественном транспорте

Эти транспортные маршруты проходят рядом с ТЦ «Конструктор»

Как доехать до ТЦ «Конструктор» на автобусе?

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

От точки Люксор Ясенево, Ясенево

От точки Парк «Узкое», Ясенево

От точки Детский ландшафтный парк, Южное Бутово

От точки ТК «Золотой Вавилон», Ясенево

От точки Кинотеатр Космик, Чертаново Южное

От точки Кинотеатр «Бульвар», Северное Бутово

От точки Каро, Южное Бутово

От точки ТЦ «Северное сияние», Северное Бутово

От точки Галерея «Атлантис», Чертаново Южное

От точки Городская клиническая больница № 12, Царицыно

Как доехать до ТЦ «Конструктор» на метро?

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

От точки Люксор Ясенево, Ясенево

От точки Парк «Узкое», Ясенево

От точки Детский ландшафтный парк, Южное Бутово

От точки ТК «Золотой Вавилон», Ясенево

От точки Кинотеатр Космик, Чертаново Южное

От точки Кинотеатр «Бульвар», Северное Бутово

От точки Каро, Южное Бутово

От точки ТЦ «Северное сияние», Северное Бутово

От точки Галерея «Атлантис», Чертаново Южное

От точки Городская клиническая больница № 12, Царицыно

Остановки Маршрутка рядом с ТЦ «Конструктор» в Сельское Поселение Совхоз Имени Ленина

Название остановки Расстояние
Каширское шоссе 7 мин. ходьбы Просмотр
Загорьевский проезд (ул. Загорьевская) 34 мин. ходьбы Просмотр

Остановки Автобус рядом с ТЦ «Конструктор» в Сельское Поселение Совхоз Имени Ленина

Название остановки Расстояние
ТРЦ "Вегас" 8 мин. ходьбы Просмотр
Загорьевская улица 30 мин. ходьбы Просмотр
Ближние Прудищи 38 мин. ходьбы Просмотр

Автобус линии до ТЦ «Конструктор» в Сельское Поселение Совхоз Имени Ленина

Название линии Направление
1046 Каширское ш., 122 Просмотр
М87 Центр крови Просмотр
С809 Касимовская ул. Просмотр
826 Загорьевский проезд Просмотр
837 Метро "Красногвардейская" Просмотр

Направления с ТЦ «Конструктор» в городе Сельское Поселение Совхоз Имени Ленина к популярным местам:

От ТЦ «Конструктор» до Продуктовый магазин

От ТЦ «Конструктор» до Молл

От ТЦ «Конструктор» до Кофейня

От ТЦ «Конструктор» до Колледж

От ТЦ «Конструктор» до Школа

От ТЦ «Конструктор» до Торговый центр

От ТЦ «Конструктор» до Университет

От ТЦ «Конструктор» до Аэропорт

От ТЦ «Конструктор» до Больница

От ТЦ «Конструктор» до Стадион

Какие остановки находятся рядом с ТЦ «Конструктор»?

Ближайшие остановки к ТЦ «Конструктор» :

  • Каширское шоссе находится в 461 метров, 7 минут пешком.
  • ТРЦ "Вегас" находится в 600 метров, 8 минут пешком.
  • Загорьевская улица находится в 2267 метров, 30 минут пешком.
  • Загорьевский проезд (ул. Загорьевская) находится в 2581 метров, 34 минут пешком.
  • Ближние Прудищи находится в 2901 метров, 38 минут пешком.

Какие маршруты автобуса останавливаются около адреса: ТЦ «Конструктор»

Эти маршруты автобуса останавливаются около адреса: ТЦ «Конструктор»: 826, 837.

Какие маршруты метро останавливаются около адреса: ТЦ «Конструктор»

Эти маршруты метро останавливаются около адреса: ТЦ «Конструктор»: 2.

На каком расстоянии находится остановка автобуса от ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина?

Ближайшая остановка автобуса около ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина находится в 8 мин ходьбы.

Какая ближайшая остановка автобуса к ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина?

остановка ТРЦ "Вегас" находится ближе всего к ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина.

На каком расстоянии находится станция маршрутки от ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина?

Ближайшая станция маршрутки около ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина находится в 7 мин ходьбы.

Какая ближайшая станция маршрутки к ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина?

станция Каширское шоссе находится ближе всего к ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина.

Показать ТЦ «Конструктор», Сельское Поселение Совхоз Имени Ленина, на карте

Карта ТЦ «Конструктор»

Общественный транспорт до ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина

Не знаете, как доехать до ТЦ «Конструктор» в Сельском Поселении Совхоз Имени Ленина, Россия? Moovit поможет вам найти лучший способ добраться до ТЦ «Конструктор» от ближайшей остановки общественного транспорта, используя пошаговые инструкции.

Moovit предлагает бесплатные карты и навигацию в режиме реального времени, чтобы помочь вам сориентироваться в городе. Открывайте расписания, поездки, часы работы, и узнайте, сколько займет дорога до ТЦ «Конструктор» с учетом данных Реального Времени.

Ищете остановку или станцию около ТЦ «Конструктор»? Проверьте список ближайших остановок к пункту назначения: Каширское шоссе; ТРЦ "Вегас"; Загорьевская улица; Загорьевский проезд (ул. Загорьевская); Ближние Прудищи.

Вы можете доехать до ТЦ «Конструктор» на автобусе или метро. У этих линий и маршрутов есть остановки поблизости: (Автобус) 826, 837 (Метро) 2

Хотите проверить, нет ли другого пути, который поможет вам добраться быстрее? Moovit помогает найти альтернативные варианты маршрутов и времени. Получите инструкции, как легко доехать до или от ТЦ «Конструктор» с помощью приложения или сайте Moovit.

С нами добраться до ТЦ «Конструктор» проще простого, именно поэтому более 930 млн. пользователей доверяют Moovit как лучшему транспортному приложению. Включая жителей Сельского Поселение Совхоз Имени Ленина! Не нужно устанавливать отдельное приложение для автобуса и отдельное приложение для метро, Moovit — ваше универсальное транспортное приложение, которое поможет вам найти самые обновленные расписания автобусов и метро.

05:30 05:55 07:00 07:09 07:21 07:27 07:33 07:57 07:59 06:20 06:45 06:57 08:09 08:21 08:32 08:33 08:45 08:50 09:02 09:07 09:14 09:27 09:30 09:50 10:03 10:14 10:16 10:29 10:36 10:42 10:58 11:07 11:20 11:30 11:42 12:05 12:14 12:27 12:36 12:50 12:58 13:13 13:20 13:35 13:42 13:57 14:05 14:11 14:25 14:27 14:50 14:53 15:07 15:13 15:21 15:35 15:57 16:11 16:18 16:25 16:39 16:53 16:56 17:07 17:13 17:21 17:38 17:47 18:04 18:21 18:28 18:38 18:52 18:55 19:12 19:20 19:28 19:59 20:02 20:13 20:28 20:42 20:45 20:54 21:17 21:27 21:52 21:55 22:23 22:27 22:51 23:07 23:15 23:35 23:39 23:57 00:03 00:22 00:44 01:08 01:32

05:31 05:56 06:21 06:46 06:58 07:10 07:22 07:34 07:58 08:10 08:22 08:34 08:46 09:08 09:31 10:15 10:37 10:59 11:21 11:43 12:06 12:28 12:51 13:14 13:36 13:58 14:12 14:26 14:54 15:08 15:22 15:36 15:58 16:19 16:40 16:57 17:14 17:48 18:05 18:22 18:39 18:56 19:21 20:03 20:46 21:28 21:56 22:24 22:52 23:16 23:40 00:04

05:32 05:57 06:22 06:47 06:59 07:11 07:23 07:35 07:59 08:11 08:23 08:35 08:47 09:09 09:32 10:16 10:38 11:00 11:22 11:44 12:07 12:29 12:52 13:15 13:37 13:59 14:13 14:27 14:55 15:09 15:23 15:37 15:59 16:20 16:41 16:58 17:15 17:49 18:06 18:23 18:40 18:57 19:22 20:04 20:47 21:29 21:57 22:25 22:53 23:17 23:41 00:05

05:35 06:00 06:25 06:50 07:02 07:14 07:26 07:38 08:02 08:14 08:26 08:38 08:50 09:12 09:35 10:19 10:41 11:03 11:25 11:47 12:10 12:32 12:55 13:18 13:40 14:02 14:16 14:30 14:58 15:12 15:26 15:40 16:02 16:23 16:44 17:01 17:19 17:53 18:10 18:27 18:44 19:01 19:25 20:07 20:50 21:32 22:00 22:28 22:56 23:20 23:44 00:08

05:36 06:01 06:26 06:51 07:04 07:16 07:28 07:40 08:04 08:16 08:28 08:40 08:52 09:14 09:37 10:21 10:43 11:05 11:27 11:49 12:12 12:34 12:57 13:20 13:42 14:04 14:18 14:32 15:00 15:14 15:28 15:42 16:04 16:25 16:46 17:03 17:21 17:55 18:12 18:29 18:46 19:03 19:27 20:09 20:52 21:34 22:02 22:30 22:58 23:21 23:45 00:09

05:41 06:06 06:31 06:56 07:11 07:23 07:35 07:47 08:11 08:23 08:35 08:47 08:59 09:25 09:48 10:32 10:54 11:16 11:38 12:00 12:23 12:45 13:08 13:31 13:53 14:15 14:29 14:43 15:11 15:25 15:39 15:53 16:15 16:36 16:57 17:14 17:32 18:06 18:23 18:40 18:57 19:11 19:35 20:17 21:00 21:40 22:08 22:36 23:04 23:26 23:50 00:14

05:42 06:07 06:32 06:57 07:13 07:25 07:37 07:49 08:13 08:25 08:37 08:49 09:01 09:26 09:49 10:33 10:55 11:17 11:39 12:01 12:24 12:46 13:09 13:32 13:54 14:16 14:30 14:44 15:12 15:26 15:40 15:54 16:16 16:37 16:58 17:16 17:34 18:08 18:25 18:42 18:59 19:12 19:36 20:18 21:01 21:41 22:09 22:37 23:05 23:27 23:51 00:15

05:43 06:08 06:33 06:58 07:15 07:27 07:39 07:51 08:15 08:27 08:39 08:51 09:03 09:28 09:51 10:35 10:57 11:19 11:41 12:03 12:26 12:48 13:11 13:34 13:56 14:18 14:32 14:46 15:14 15:28 15:42 15:56 16:18 16:39 17:00 17:19 17:37 18:11 18:28 18:45 19:02 19:14 19:38 20:20 21:02 21:42 22:10 22:38 23:06 23:28 23:52 00:16

05:45 06:10 06:35 07:00 07:18 07:30 07:42 07:54 08:18 08:30 08:42 08:54 09:06 09:31 09:54 10:38 11:00 11:22 11:44 12:06 12:29 12:51 13:14 13:37 13:59 14:21 14:35 14:49 15:17 15:31 15:45 15:59 16:21 16:42 17:03 17:23 17:41 18:15 18:32 18:49 19:05 19:17 19:41 20:23 21:05 21:45 22:13 22:41 23:08 23:30 23:54 00:18

05:47 06:12 06:37 07:02 07:20 07:32 07:44 07:56 08:20 08:32 08:44 08:56 09:08 09:33 09:56 10:40 11:02 11:24 11:46 12:08 12:31 12:53 13:16 13:39 14:01 14:23 14:37 14:51 15:19 15:33 15:47 16:01 16:23 16:44 17:06 17:26 17:44 18:18 18:35 18:52 19:08 19:20 19:44 20:26 21:07 21:47 22:15 22:43 23:10 23:32 23:56 00:20

05:48 06:13 06:38 07:03 07:21 07:33 07:45 07:57 08:21 08:33 08:45 08:57 09:09 09:34 09:57 10:41 11:03 11:25 11:47 12:09 12:32 12:54 13:17 13:40 14:02 14:24 14:38 14:52 15:20 15:34 15:48 16:02 16:24 16:45 17:07 17:27 17:45 18:19 18:36 18:53 19:09 19:21 19:45 20:27 21:08 21:48 22:16 22:44 23:11 23:33 23:57 00:21

05:50 06:15 06:40 07:06 07:24 07:36 07:48 08:00 08:24 08:36 08:48 09:00 09:12 09:37 10:00 10:44 11:06 11:28 11:50 12:12 12:35 12:57 13:20 13:43 14:05 14:27 14:41 14:55 15:23 15:37 15:51 16:05 16:27 16:48 17:11 17:31 17:49 18:23 18:40 18:57 19:12 19:24 19:48 20:30 21:10 21:50 22:18 22:46 23:13 23:35 23:59 00:23

05:51 06:16 06:41 07:07 07:25 07:37 07:49 08:01 08:25 08:37 08:49 09:01 09:14 09:39 10:02 10:46 11:08 11:30 11:52 12:14 12:37 12:59 13:22 13:45 14:07 14:29 14:43 14:57 15:25 15:39 15:53 16:07 16:29 16:50 17:13 17:33 17:51 18:25 18:42 18:59 19:13 19:25 19:49 20:31 21:11 21:51 22:19 22:47 23:14 23:36 00:00 00:24

05:53 06:18 06:43 07:10 07:28 07:40 07:52 08:04 08:28 08:40 08:52 09:05 09:18 09:43 10:06 10:50 11:12 11:34 11:56 12:18 12:41 13:03 13:26 13:49 14:11 14:33 14:47 15:01 15:29 15:43 15:57 16:11 16:33 16:54 17:17 17:37 17:55 18:29 18:46 19:03 19:17 19:29 19:53 20:35 21:14 21:54 22:22 22:50 23:16 23:38 00:02 00:26

05:54 06:19 06:44 07:12 07:30 07:42 07:54 08:06 08:30 08:42 08:54 09:07 09:20 09:45 10:08 10:52 11:14 11:36 11:58 12:20 12:43 13:05 13:28 13:51 14:13 14:35 14:49 15:03 15:31 15:45 15:59 16:13 16:35 16:56 17:19 17:39 17:57 18:31 18:48 19:05 19:19 19:31 19:55 20:37 21:15 21:55 22:23 22:51 23:17 23:39 00:03 00:27

05:57 06:22 06:47 07:15 07:33 07:45 07:57 08:09 08:33 08:45 08:57 09:10 09:23 09:48 10:11 10:55 11:17 11:39 12:01 12:23 12:46 13:08 13:31 13:54 14:16 14:38 14:52 15:06 15:34 15:48 16:02 16:16 16:38 16:59 17:23 17:43 18:01 18:35 18:52 19:08 19:22 19:34 19:58 20:40 21:18 21:58 22:26 22:54 23:20 23:42 00:06 00:30

06:00 06:25 06:50 07:19 07:37 07:49 08:01 08:13 08:37 08:49 09:01 09:14 09:27 09:52 10:15 10:59 11:21 11:43 12:05 12:27 12:50 13:12 13:35 13:58 14:20 14:42 14:56 15:10 15:38 15:52 16:06 16:20 16:42 17:03 17:27 17:47 18:05 18:39 18:56 19:12 19:26 19:38 20:02 20:44 21:22 22:02 22:30 22:58 23:23 23:45 00:09 00:33

06:01 06:26 06:51 07:20 07:38 07:50 08:02 08:14 08:38 08:50 09:02 09:15 09:28 09:53 10:16 11:00 11:22 11:44 12:06 12:28 12:51 13:13 13:36 13:59 14:21 14:43 14:57 15:11 15:39 15:53 16:07 16:21 16:43 17:04 17:28 17:48 18:06 18:40 18:57 19:13 19:27 19:39 20:03 20:45 21:23 22:03 22:31 22:59 23:24 23:46 00:10 00:34

06:02 06:27 06:52 07:21 07:39 07:51 08:03 08:15 08:39 08:51 09:04 09:17 09:30 09:55 10:18 11:02 11:24 11:46 12:08 12:30 12:53 13:15 13:38 14:01 14:23 14:45 14:59 15:13 15:41 15:55 16:09 16:23 16:45 17:06 17:30 17:50 18:08 18:42 18:59 19:14 19:28 19:40 20:04 20:46 21:24 22:04 22:32 23:00 23:25 23:47 00:11 00:35

06:03 06:28 06:53 07:23 07:41 07:53 08:05 08:17 08:41 08:53 09:06 09:19 09:32 09:57 10:20 11:04 11:26 11:48 12:10 12:32 12:55 13:17 13:40 14:03 14:25 14:47 15:01 15:15 15:43 15:57 16:11 16:25 16:47 17:08 17:32 17:52 18:10 18:44 19:01 19:16 19:30 19:42 20:06 20:48 21:25 22:05 22:33 23:01 23:26 23:48 00:12 00:36

06:05 06:30 06:55 07:26 07:44 07:56 08:08 08:20 08:44 08:56 09:08 09:21 09:34 09:59 10:22 11:06 11:28 11:50 12:12 12:34 12:57 13:19 13:42 14:05 14:27 14:49 15:03 15:17 15:45 15:59 16:13 16:27 16:49 17:11 17:35 17:55 18:13 18:47 19:04 19:19 19:33 19:45 20:09 20:51 21:27 22:07 22:35 23:03 23:28 23:50 00:14 00:38

06:06 06:31 06:56 07:27 07:45 07:57 08:09 08:21 08:45 08:57 09:09 09:22 09:35 10:00 10:23 11:07 11:29 11:51 12:13 12:35 12:58 13:20 13:43 14:06 14:28 14:50 15:04 15:18 15:46 16:00 16:14 16:28 16:50 17:13 17:37 17:57 18:15 18:49 19:05 19:20 19:34 19:46 20:10 20:52 21:28 22:08 22:36 23:04 23:29 23:51 00:15 00:39

06:07 06:32 06:57 07:29 07:47 07:59 08:11 08:23 08:47 08:59 09:11 09:24 09:37 10:02 10:25 11:09 11:31 11:53 12:15 12:37 13:00 13:22 13:45 14:08 14:30 14:52 15:06 15:20 15:48 16:02 16:16 16:30 16:52 17:15 17:39 17:59 18:17 18:51 19:07 19:22 19:36 19:48 20:12 20:54 21:30 22:10 22:38 23:05 23:30 23:52 00:16 00:40

06:08 06:33 06:58 07:30 07:48 08:00 08:12 08:24 08:48 09:00 09:12 09:25 09:38 10:03 10:26 11:10 11:32 11:54 12:16 12:38 13:01 13:23 13:46 14:09 14:31 14:53 15:07 15:21 15:49 16:03 16:17 16:31 16:53 17:16 17:40 18:00 18:18 18:52 19:08 19:23 19:37 19:49 20:13 20:55 21:31 22:11 22:39 23:06 23:31 23:53 00:17 00:41

06:09 06:34 06:59 07:31 07:49 08:01 08:13 08:25 08:49 09:01 09:14 09:27 09:40 10:05 10:28 11:12 11:34 11:56 12:18 12:40 13:03 13:25 13:48 14:11 14:33 14:55 15:09 15:23 15:51 16:05 16:19 16:33 16:55 17:18 17:42 18:02 18:20 18:54 19:09 19:24 19:38 19:50 20:14 20:56 21:32 22:12 22:40 23:07 23:32 23:54 00:18 00:42

06:11 06:36 07:01 07:34 07:52 08:04 08:16 08:28 08:52 09:04 09:17 09:30 09:43 10:08 10:31 11:15 11:37 11:59 12:21 12:43 13:06 13:28 13:51 14:14 14:36 14:58 15:12 15:26 15:54 16:08 16:22 16:36 16:58 17:21 17:45 18:05 18:23 18:57 19:12 19:27 19:41 19:53 20:17 20:59 21:34 22:14 22:42 23:09 23:34 23:56 00:20 00:44

06:12 06:37 07:02 07:35 07:53 08:05 08:17 08:29 08:53 09:05 09:18 09:31 09:44 10:09 10:32 11:16 11:38 12:00 12:22 12:44 13:07 13:29 13:52 14:15 14:37 14:59 15:13 15:27 15:55 16:09 16:23 16:37 16:59 17:23 17:47 18:07 18:25 18:59 19:13 19:28 19:42 19:54 20:18 21:00 21:35 22:15 22:43 23:10 23:35 23:57 00:21 00:45

06:13 06:38 07:03 07:36 07:54 08:06 08:18 08:30 08:54 09:06 09:19 09:32 09:45 10:10 10:33 11:17 11:39 12:01 12:23 12:45 13:08 13:30 13:53 14:16 14:38 15:00 15:14 15:28 15:56 16:10 16:24 16:38 17:00 17:24 17:48 18:08 18:26 19:00 19:14 19:29 19:43 19:55 20:19 21:01 21:36 22:16 22:44 23:11 23:36 23:58 00:22 00:46

06:15 06:40 07:05 07:38 07:56 08:08 08:20 08:32 08:56 09:09 09:22 09:35 09:48 10:13 10:36 11:20 11:42 12:04 12:26 12:48 13:11 13:33 13:56 14:19 14:41 15:03 15:17 15:31 15:59 16:13 16:27 16:41 17:03 17:27 17:51 18:11 18:29 19:03 19:17 19:32 19:46 19:58 20:22 21:04 21:39 22:19 22:47 23:13 23:38 00:00 00:24 00:48

06:16 06:41 07:07 07:40 07:58 08:10 08:22 08:34 08:58 09:11 09:24 09:37 09:50 10:15 10:38 11:22 11:44 12:06 12:28 12:50 13:13 13:35 13:58 14:21 14:43 15:05 15:19 15:33 16:01 16:15 16:29 16:43 17:06 17:30 17:54 18:14 18:32 19:06 19:20 19:35 19:49 20:01 20:25 21:06 21:41 22:21 22:49 23:14 23:39 00:01 00:25 00:49

06:18 06:43 07:10 07:43 08:01 08:13 08:25 08:37 09:01 09:14 09:27 09:40 09:53 10:18 10:41 11:25 11:47 12:09 12:31 12:53 13:16 13:38 14:01 14:24 14:46 15:08 15:22 15:36 16:04 16:18 16:32 16:46 17:09 17:33 17:57 18:17 18:35 19:09 19:23 19:38 19:52 20:04 20:28 21:09 21:44 22:24 22:52 23:16 23:41 00:03 00:27 00:51

06:21 06:46 07:14 07:47 08:05 08:17 08:29 08:41 09:04 09:17 09:30 09:43 09:56 10:21 10:44 11:28 11:50 12:12 12:34 12:56 13:19 13:41 14:04 14:27 14:49 15:11 15:25 15:39 16:07 16:21 16:35 16:49 17:13 17:37 18:01 18:21 18:39 19:13 19:27 19:42 19:56 20:08 20:32 21:12 21:47 22:27 22:55 23:19 23:44 00:06 00:30 00:54

06:22 06:47 07:16 07:49 08:07 08:19 08:31 08:43 09:06 09:19 09:32 09:45 09:58 10:23 10:46 11:30 11:52 12:14 12:36 12:58 13:21 13:43 14:06 14:29 14:51 15:13 15:27 15:41 16:09 16:23 16:37 16:51 17:15 17:39 18:03 18:23 18:41 19:15 19:29 19:44 19:58 20:10 20:34 21:14 21:49 22:29 22:57 23:20 23:45 00:07 00:31 00:55

06:24 06:49 07:18 07:51 08:09 08:21 08:33 08:45 09:08 09:21 09:34 09:47 10:00 10:25 10:48 11:32 11:54 12:16 12:38 13:00 13:23 13:45 14:08 14:31 14:53 15:15 15:29 15:43 16:11 16:25 16:39 16:53 17:17 17:41 18:05 18:25 18:43 19:17 19:31 19:46 20:00 20:12 20:36 21:16 21:51 22:31 22:59 23:22 23:47 00:09 00:33 00:57

06:24 06:49 07:19 07:52 08:10 08:22 08:34 08:46 09:09 09:22 09:35 09:48 10:01 10:26 10:49 11:33 11:55 12:17 12:39 13:01 13:24 13:46 14:09 14:32 14:54 15:16 15:30 15:44 16:12 16:26 16:40 16:54 17:18 17:42 18:06 18:26 18:44 19:18 19:32 19:47 20:01 20:13 20:37 21:17 21:52 22:32 23:00 23:22 23:47 00:09 00:33 00:57

06:27 06:52 07:23 07:56 08:14 08:26 08:38 08:50 09:13 09:26 09:39 09:52 10:05 10:30 10:53 11:37 11:59 12:21 12:43 13:05 13:28 13:50 14:13 14:36 14:58 15:20 15:34 15:48 16:16 16:30 16:44 16:58 17:23 17:47 18:11 18:31 18:49 19:22 19:36 19:51 20:05 20:17 20:41 21:20 21:55 22:35 23:03 23:25 23:50 00:12 00:36 01:00

06:29 06:54 07:25 07:58 08:16 08:28 08:40 08:52 09:15 09:28 09:41 09:54 10:07 10:32 10:55 11:39 12:01 12:23 12:45 13:07 13:30 13:52 14:15 14:38 15:00 15:22 15:36 15:50 16:18 16:32 16:46 17:00 17:25 17:49 18:13 18:33 18:51 19:24 19:38 19:53 20:07 20:19 20:43 21:22 21:57 22:37 23:05 23:27 23:52 00:14 00:38 01:02

06:30 06:55 07:26 07:59 08:17 08:29 08:41 08:53 09:16 09:29 09:42 09:55 10:08 10:33 10:56 11:40 12:02 12:24 12:46 13:08 13:31 13:53 14:16 14:39 15:01 15:23 15:37 15:51 16:19 16:33 16:47 17:01 17:27 17:51 18:15 18:35 18:53 19:25 19:39 19:54 20:08 20:20 20:44 21:23 21:58 22:38 23:06 23:28 23:53 00:15 00:39 01:03

06:31 06:56 07:27 08:00 08:18 08:30 08:42 08:54 09:17 09:30 09:43 09:56 10:09 10:34 10:57 11:41 12:03 12:25 12:47 13:09 13:32 13:54 14:17 14:40 15:02 15:24 15:38 15:52 16:20 16:34 16:48 17:02 17:28 17:52 18:16 18:36 18:54 19:26 19:40 19:55 20:09 20:21 20:45 21:24 21:59 22:39 23:07 23:29 23:54 00:16 00:40 01:04

06:32 06:57 07:28 08:01 08:19 08:31 08:43 08:55 09:18 09:31 09:44 09:57 10:10 10:35 10:58 11:42 12:04 12:26 12:48 13:10 13:33 13:55 14:18 14:41 15:03 15:25 15:39 15:53 16:21 16:35 16:49 17:04 17:30 17:54 18:18 18:38 18:56 19:27 19:41 19:56 20:10 20:22 20:46 21:25 22:00 22:40 23:08 23:30 23:55 00:17 00:41 01:05

06:34 06:59 07:30 08:03 08:21 08:33 08:45 08:57 09:20 09:33 09:46 09:59 10:12 10:37 11:00 11:44 12:06 12:28 12:50 13:12 13:35 13:57 14:20 14:43 15:05 15:27 15:41 15:55 16:23 16:37 16:51 17:06 17:32 17:56 18:20 18:40 18:58 19:29 19:43 19:58 20:12 20:24 20:48 21:27 22:02 22:42 23:10 23:32 23:57 00:19 00:43 01:07

06:36 07:01 07:33 08:06 08:24 08:36 08:48 09:00 09:23 09:36 09:49 10:02 10:15 10:40 11:03 11:47 12:09 12:31 12:53 13:15 13:38 14:00 14:23 14:46 15:08 15:30 15:44 15:58 16:26 16:40 16:54 17:09 17:35 17:59 18:23 18:43 19:01 19:32 19:46 20:01 20:15 20:27 20:51 21:29 22:04 22:44 23:12 23:34 23:59 00:21 00:45 01:09

06:38 07:03 07:35 08:08 08:26 08:38 08:50 09:02 09:25 09:38 09:51 10:04 10:17 10:42 11:05 11:49 12:11 12:33 12:55 13:17 13:40 14:02 14:25 14:48 15:10 15:32 15:46 16:00 16:28 16:42 16:56 17:11 17:37 18:01 18:25 18:45 19:03 19:34 19:48 20:03 20:17 20:29 20:53 21:31 22:06 22:46 23:14 23:36 00:01 00:23 00:47 01:11

06:41 07:06 07:38 08:11 08:29 08:41 08:53 09:06 09:29 09:42 09:55 10:08 10:21 10:46 11:09 11:53 12:15 12:37 12:59 13:21 13:44 14:06 14:29 14:52 15:14 15:36 15:50 16:04 16:32 16:46 17:00 17:16 17:42 18:06 18:30 18:50 19:07 19:38 19:52 20:07 20:21 20:33 20:57 21:34 22:09 22:49 23:17 23:39 00:04 00:26 00:50 01:14

06:43 07:08 07:40 08:13 08:31 08:43 08:55 09:08 09:31 09:44 09:57 10:10 10:23 10:48 11:11 11:55 12:17 12:39 13:01 13:23 13:46 14:08 14:31 14:54 15:16 15:38 15:52 16:06 16:34 16:48 17:02 17:19 17:45 18:09 18:33 18:53 19:10 19:41 19:55 20:10 20:24 20:36 21:00 21:36 22:11 22:51 23:19 23:41 00:06 00:28 00:52 01:16

06:45 07:10 07:42 08:15 08:33 08:45 08:57 09:10 09:33 09:46 09:59 10:12 10:25 10:50 11:13 11:57 12:19 12:41 13:03 13:25 13:48 14:10 14:33 14:56 15:18 15:40 15:54 16:08 16:36 16:50 17:04 17:21 17:47 18:11 18:35 18:55 19:12 19:43 19:57 20:12 20:26 20:38 21:02 21:37 22:12 22:52 23:20 23:42 00:07 00:29 00:53 01:17

06:47 07:12 07:44 08:17 08:35 08:47 08:59 09:12 09:35 09:48 10:01 10:14 10:27 10:52 11:15 11:59 12:21 12:43 13:05 13:27 13:50 14:12 14:35 14:58 15:20 15:42 15:56 16:10 16:38 16:52 17:06 17:23 17:49 18:13 18:37 18:57 19:14 19:45 19:59 20:14 20:28 20:40 21:04 21:39 22:14 22:54 23:22 23:44 00:09 00:31 00:55 01:19

06:49 07:14 07:46 08:19 08:37 08:49 09:01 09:14 09:37 09:50 10:03 10:16 10:29 10:54 11:17 12:01 12:23 12:45 13:07 13:29 13:52 14:14 14:37 15:00 15:22 15:44 15:58 16:12 16:40 16:54 17:08 17:25 17:51 18:15 18:39 18:59 19:16 19:47 20:01 20:16 20:30 20:42 21:06 21:41 22:16 22:56 23:24 23:46 00:11 00:33 00:57 01:21

06:53 07:19 07:51 08:24 08:42 08:54 09:06 09:19 09:42 09:55 10:08 10:21 10:34 10:59 11:22 12:06 12:28 12:50 13:12 13:34 13:57 14:19 14:42 15:05 15:27 15:49 16:03 16:17 16:45 16:59 17:13 17:30 17:56 18:20 18:44 19:04 19:20 19:51 20:05 20:20 20:34 20:46 21:10 21:45 22:20 23:00 23:28 23:50 00:15 00:37 01:01 01:25

06:54 07:21 07:53 08:26 08:44 08:56 09:08 09:21 09:44 09:57 10:10 10:23 10:36 11:01 11:24 12:08 12:30 12:52 13:14 13:36 13:59 14:21 14:44 15:07 15:29 15:51 16:05 16:19 16:47 17:01 17:15 17:32 17:58 18:22 18:46 19:06 19:22 19:53 20:07 20:22 20:36 20:48 21:11 21:46 22:21 23:01 23:29 23:51 00:16 00:38 01:02 01:26

06:58 07:25 07:57 08:30 08:48 09:00 09:12 09:25 09:48 10:01 10:14 10:27 10:40 11:05 11:28 12:12 12:34 12:56 13:18 13:40 14:03 14:25 14:48 15:11 15:33 15:55 16:09 16:23 16:51 17:05 17:19 17:36 18:02 18:26 18:50 19:10 19:26 19:57 20:11 20:26 20:40 20:52 21:15 21:50 22:25 23:05 23:33 23:55 00:20 00:42 01:06 01:30

06:58 07:25 07:57 08:30 08:48 09:00 09:12 09:25 09:48 10:01 10:14 10:27 10:40 11:05 11:28 12:12 12:34 12:56 13:18 13:40 14:03 14:25 14:48 15:11 15:33 15:55 16:09 16:23 16:51 17:05 17:19 17:36 18:02 18:26 18:50 19:10 19:26 19:57 20:11 20:26 20:40 20:52 21:15 21:50 22:25 23:05 23:33 23:55 00:20 00:42 01:06 01:30

06:59 07:26 07:58 08:31 08:49 09:01 09:13 09:26 09:49 10:02 10:15 10:28 10:41 11:06 11:29 12:13 12:35 12:57 13:19 13:41 14:04 14:26 14:49 15:12 15:34 15:56 16:10 16:24 16:52 17:06 17:20 17:37 18:03 18:27 18:51 19:11 19:27 19:58 20:12 20:27 20:41 20:53 21:16 21:51 22:26 23:06 23:34 23:56 00:21 00:43 01:07 01:31


Осенью 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 пунктов:

  1. Прибытие. Можно просто посмотреть остановку. Нажав на кнопку (ее, кстати, может быть, стоит сделать побольше — я подумаю!), вы отправляете свое местоположение, система ищет три ближайшие к вам остановки и показывает информацию по ним. Можно ввести название остановки и получить информацию по ней. Поскольку вам вряд ли нужны все 20–30 автобусов, которые могут приехать к остановке, вы можете отфильтровать их по маршрутам.
  2. Автобусы. На второй странице собрана информация по автобусам. Это связано еще с одной историей, подтолкнувшей меня к этому проекту. В один прекрасный день я забыл в автобусе шапку, позвонил в диспетчерскую, объяснил, где это случилось. Диспетчер предложил мне ловить свой автобус в центре, куда он вернется, развернувшись на конечной. Я вспомнил, что у меня есть логин и пароль от системы Центра организации дорожного движения, но оказалось, что отследить местоположение нужной мне машины я через веб-интерфейс все равно не могу. Шапку я вернул, но с большим трудом.
    Я подумал, что поиск автобуса мог бы быть гораздо проще. Написал номер маршрута, а система показывает тебе машины на линии, их текущее местоположение и время, когда они проходили остановки по пути. И даже если вы знаете номер маршрута, но вы знаете номер автобуса (такое тоже бывает), вы все равно сможете его найти.
  3. Карта. Карта на сайте без анимации. Здесь можно выбирать автобусы из списка или вводить номера вручную, можно их отфильтровать. На карте могут быть показаны до 600 автобусов, хотя уже после 20 найти что-то в центре становится сложно, просто потому, что маршруты все сконцентрированы здесь. Поэтому лучше ограничивать поиск параметрами более жестко.
  4. О проекте. Сейчас у проекта есть сайт, есть Telegram-бот, группы в соцсетях.

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

Разумеется, такие сервисы можно делать и для других городов, более того, в некоторых они уже работают. Многое зависит от местного ЦОДД, кое-где, например, в Санкт-Петербурге есть даже API для разработчиков. Но самое главное — горожане, которые хотят менять свой город к лучшему.

Читайте также: