0003. Модель движения вместо реальной телеметрии¶
Дата: август 2026. Состояние: принято.
Контекст¶
Замысел стенда — живая схема метро, на которой видно, где сейчас составы. Московский метрополитен не публикует телеметрию поездов: ни открытого интерфейса с положением состава, ни выгрузки в открытых данных города. Обходные пути — разбор внутренних запросов чужих приложений — недопустимы в открытом проекте.
Решение¶
Разделить фактические данные и расчёт.
Фактические: линии, станции, их порядок и координаты берутся из OpenStreetMap через Overpass API. Это настоящая геометрия сети — та же, по которой строят маршруты картографические сервисы.
Расчётные: положение состава вычисляется из времени хода по перегону и интервала выпуска, который меняется по времени суток — утренний час пик, день, вечерний час пик, поздний вечер. Число составов на линии не задано вручную: оно следует из времени полного оборота и интервала.
Положение — чистая функция от модельного времени. Одна и та же секунда всегда даёт ту же картинку, поэтому две реплики показывают одно и то же, а поведение можно проверить тестами.
Последствия¶
Что получили. Схема выглядит правдоподобно и ведёт себя правдоподобно: утром составов вдвое больше, чем в полночь, кольцевая линия замыкается, поезда стоят на станциях, а не проскакивают их. Сервис не зависит ни от одной внешней системы во время работы: справочник попадает в образ на этапе сборки.
Чем заплатили. Это не факт, а модель. Конкретный поезд на схеме не соответствует конкретному поезду в тоннеле. Оговорка стоит на самой карте, в описании и здесь — потому что стенд, который выдаёт модель за телеметрию, дискредитирует всё остальное, что на нём показано.
Что рассматривалось¶
Открытые данные города (data.mos.gov.ru) — есть наборы по станциям, вестибюлям, доступности, но не по движению составов. Пригодились как проверка названий станций.
Расписания GTFS — для метрополитена в открытом виде публикуются интервалы, а не рейсы. По сути это то же, что уже используется в модели.
Придуманная схема вместо настоящей — избавила бы от разговора про источники, но лишила бы стенд узнаваемости. Москвич находит на схеме свою станцию за несколько секунд, и это половина впечатления.