Перейти к содержанию

0003. Модель движения вместо реальной телеметрии

Дата: август 2026. Состояние: принято.

Контекст

Замысел стенда — живая схема метро, на которой видно, где сейчас составы. Московский метрополитен не публикует телеметрию поездов: ни открытого интерфейса с положением состава, ни выгрузки в открытых данных города. Обходные пути — разбор внутренних запросов чужих приложений — недопустимы в открытом проекте.

Решение

Разделить фактические данные и расчёт.

Фактические: линии, станции, их порядок и координаты берутся из OpenStreetMap через Overpass API. Это настоящая геометрия сети — та же, по которой строят маршруты картографические сервисы.

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

Положение — чистая функция от модельного времени. Одна и та же секунда всегда даёт ту же картинку, поэтому две реплики показывают одно и то же, а поведение можно проверить тестами.

Последствия

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

Чем заплатили. Это не факт, а модель. Конкретный поезд на схеме не соответствует конкретному поезду в тоннеле. Оговорка стоит на самой карте, в описании и здесь — потому что стенд, который выдаёт модель за телеметрию, дискредитирует всё остальное, что на нём показано.

Что рассматривалось

Открытые данные города (data.mos.gov.ru) — есть наборы по станциям, вестибюлям, доступности, но не по движению составов. Пригодились как проверка названий станций.

Расписания GTFS — для метрополитена в открытом виде публикуются интервалы, а не рейсы. По сути это то же, что уже используется в модели.

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