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

Геометрия линий

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

Для отрисовки более точных линий используем данные OSM и добавляем промежуточные точки между станциями.

В первой версии карты было 252 точки. В новой версии — почти в 23 раза больше — 5688 точек:

Тоннель от Крылатского до Строгино идет очень замысловатым образом: часть пути проходит по Серебряноборским тоннелям; также на этом перегоне планировалась станция Троице-Лыково.
Тоннель от Крылатского до Строгино идет очень замысловатым образом: часть пути проходит по Серебряноборским тоннелям; также на этом перегоне планировалась станция Троице-Лыково.
Не менее замысловатые изгибы Филевской и Солнцевской линий.
Не менее замысловатые изгибы Филевской и Солнцевской линий.

Пересечение станций

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

Двигаем точки (в пределах реальных размеров станций метро), чтобы максимально разнести их на схеме:

Было: станции “Деловой центр” Солнцевской и Большой Кольцевой линий, а также станций станции “Киевская” Кольцевой и Арбатско-Покровской линий практически сливаются.
Было: станции “Деловой центр” Солнцевской и Большой Кольцевой линий, а также станций станции “Киевская” Кольцевой и Арбатско-Покровской линий практически сливаются.

Также исправляем ситуации, когда станция метро одной ветки накладывается на линию другой ветки:

Было: станции “Белорусская” и “Новослободская” Кольцевой линии накладываются поверх радиальных линий — это не очень красиво.
Было: станции “Белорусская” и “Новослободская” Кольцевой линии накладываются поверх радиальных линий — это не очень красиво.

Пересечение линий

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

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

Для обозначения относительной глубины залегания вводим новый атрибут — layer — который привязывается к линии (way).

Более глубоким тоннелям соответствует меньшее значение layer. Дорабатываем логику отрисовки линий (ways): начиная с самых нижних уровней поэтапно отрисовываем все линии до самых высоких значений layer.

Теперь все пересечения линий соответствуют реальному расположению путей:

Википедия

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

 Нажатие на иконку Википедии в левом нижнем углу откроет в новой табе соответствующую статью.
Нажатие на иконку Википедии в левом нижнем углу откроет в новой табе соответствующую статью.

Кнопки навигации

Добавляем кнопки навигации по событиям (events). При нажатии происходит, соответственно, переключение текущей даты на ближайшее предыдущее, либо будущее событие.

Вместе с кнопками добавляем управление с клавиатуры:

  • влево/вправо — переключение даты на предыдущее / будущее событие;

  • вверх/вниз — переключение даты на один день вперед / назад.

Будущее метро

В комментариях к предыдущей статье предложили прекрасную идею: добавить на карту планируемые линии и станции.

Общие планы по развитию метро на ближайшие лет 5 известны и доступны.

Конечно же, за такой срок  что-то может измениться (и, наверняка, изменится). К тому же, неизвестны, хотя бы, примерные даты открытия новых станций и участков. Но, в целом, в сети достаточно много материалов, чтобы предположить, как будет развиваться метро в ближайшие 5 лет.

Открываем, изучаем, фантазируем:

Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.
Изображение из открытых источников.

Где-то к 2028 году будут открыты новые линии Троицкая, Бирюлёвская, Рублево-Архангельская, а также Солнцевская и Калининская линии объединятся в Калининско-Солнцевскую:

Новые линии: Троицкая, Бирюлёвская, Рублево-Архангельская, а также объединение Солнцевской и Калининской линий в Калининско-Солнцевскую.
Новые линии: Троицкая, Бирюлёвская, Рублево-Архангельская, а также объединение Солнцевской и Калининской линий в Калининско-Солнцевскую.

Ложка дегтя

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

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

Стали заметны задержки и рывки при навигации — и это предмет для дальнейшей оптимизации.

Итоги

Помимо перечисленных в статье моментов, добавлен ещё ряд менее заметных улучшений.

На проработку карты, включая статью для Хабра, было затрачено около 55 часов.

Что получилось: https://mm.timelapsemap.com.

Ссылка на эту версию для истории: https://timelapsemap.com/h/256d54.

Комментарии (10)


  1. vis_inet
    18.03.2022 11:33
    -1

    Красивое (с)


  1. bag05
    18.03.2022 14:55
    +2

    Непоказывайте А. Лебедеву…


  1. serafims
    18.03.2022 17:14

    "Не менее замысловатые изгибы Филевской и Солнцевской линий. "
    Если проанализировать всю карту, видно, что на станции поезд не должен входить в кривую, участок должен быть прямолинеен. Прошу метрополитенологов пояснить, почему это важно.


    1. Pornopatsan
      18.03.2022 20:36
      +3

      Вообще говоря, это неправда. Небольшая кривизна допускается.
      Как например на станциях Кутузовская или Арбатская (голубой ветки)

      Кутузовская
      Кутузовская
      Арбатская
      Арбатская


  1. yoz
    18.03.2022 17:15

    Посмотрите MetroCucumber на ютубе. У него перспективы развития интересно и далеко отрисованы.


    1. PavelKrishtalskiy Автор
      19.03.2022 10:24

      Спасибо за наводку.

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

      Например, объединение Бирюлёвской и Рублёво-Архангельской линий в перспективе есть, но пока не удалось найти ни трассировки путей, ни даже примерных сроков (Википедия подсказывает, что «к проектированию подобного продления планируется приступить после 2025 года»).


  1. Zeleny4
    18.03.2022 20:41
    -1

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

    Вот просто смотришь на все это дизайнерское безумие, и понимаешь, что схемы и таблицы советских времен-четкими, контрастными цветами и прямыми линиями, и максимально возможным для размера табло надписи жирным черным шрифтом-это и есть забота о людях. Ну осовремень ты все это, и пусти в производство. А не изгадь в стиле "я ТАК вижу", сляпав "портрет Клетчатого". И это вот всё... нецензура, в общем. Кстати-человек, едущий в вагоне метро - свято верит, что он едет по прямой. И уж самое худшее, что он может желать-это слежить пальцем за извивами и загибами веток, прикидывая нужное кол-во станций до пересадки (тоже в безумном стиле).


    1. VXP
      20.03.2022 04:51
      +1

      Артемий Андреевич, перелогиньтесь


  1. fotobred
    18.03.2022 21:35
    +1

    Если захотите, можно добавить немного фото истории

    http://walks.ru/cgi-bin/album/album_pic.pl?mtr0_01.rus=166=0=stdt/moscow=b=album=end

    Не так красиво, но с переходами и выходами


  1. Xobotun
    19.03.2022 22:07
    +1

    Прекрасная карта, спасибо!
    Видел муниципальную версию, но с фактическим расположением линий куда интереснее, кмк.