Статьи
Картография Туториалы ГИС

Делаем транспортную карту в QGIS

Время прочтения: 5 минут
Версия QGIS: 3.30
Сложность: Если вы уже умеете устанавливать плагины, работать со слоями и со стилями, то создать подобную карту не составит труда. Если же вы совсем новичок, то придется немного посерфить интернет (или записаться на курс).

В 1933 году, человек, который по профессии чертил электрические сети, Гарри Бекк, навсегда вписал себя в историю и дизайна и картографии, опубликовав карту метро Лондона, что произвело революцию в транспортных схемах. А в этой статье, вы узнаете, как сделать похожую с помощью старого доброго QGIS.
Историческая карта метро Лондона
Карта метро Лондона, она же Tube Map стала примером того, как делать схемы метро, которые некоторые даже называют диаграммами. Сейчас уже сложно, если вообще возможно, найти карты метро, сделанные без использования основных принципов построения схем метро, которые впервые для такой работы использовал Гарри Бекк. (Источник изображения https://science.howstuffworks.com/engineering/civil/london-tube-map.htm)

Референсы

В нашем сегодняшнем гайде я буду на примере схемы метро Ташкента показывать, как можно строить транспортные схемы в QGIS. И когда я говорю про QGIS, я имею ввиду только QGIS, только хардкор, никаких иллюстраторов, фотошопов и прочего.
Перед тем как делать схему, есть смысл посмотреть те схемы транспорта, которые уже есть. Они помогут вдохновиться, проверить спорную информацию и выучить цвета веток метро — их важно сохранить такими, как привыкли люди.
У Ташкентского метрополитена есть официальная схема, но делать именно ее я решил просто потому, что хочу получше изучить город перед тем, как его посетить (Источник -https://tashmetro.uz/metro-xaritasi/)
У Ташкента есть и прекрасные неофициальные схемы, например вот такая потрясающая схема от Ильи Бирмана и Тимура Репина (Источник - https://ilyabirman.ru/tashkent-metro/)

Добываем данные для карты метро

Для своей схемы я скачал данные с OSM, у нас как раз есть статья про то как это можно сделать. Качаю все что есть по тегу railway=subway и получаю слои со станциями и с ветками метро.
Слои линий и станций метро Ташкента на OpenStreetMap
Как видим, географическое расположение весьма извилистое, и это нам предстоит исправить по всем канонам карты Гарри Бекка. Но если вы посмотрите на схему Ташкентского метро Ильи Бирмана и Тимура Репина, то заметите, что они сохранили извилистость, лишь слегка сгладив географию линии подземки, отойдя от канонов, но не делая карту менее читаемой, сохраняя схожесть с оригинальной tube map (если хотите узнать побольше про историю стиля, придуманного Гарри Бекком, то читайте нашу статью про это).
Когда Гарри Бекк делал карту Лондонского метро, он исказил ради читаемости географию, расширил центр и уменьшил окраины, так как людям в метро особо не важно, что находится на поверхности между станциями. И самое заметное: он сделал все линии ориентированными горизонтально, вертикально или по диагонали под углами, кратными 45 градусам.
Поэтому нам нужно расчертить сетку, которая позволит нам перестроить географические линии по принципам Бекка. Для этого используем плагин MMQGIS и строим сначала точечную сетку размером 250 на 250 м (не забудьте выбрать систему координат, в которой в качестве основных единиц выступают метры, а не градусы). После этого строим квадратную сетку 500 на 500 м.
В итоге получаются вот такие сетки
Следующим шагом начнем выпрямлять линии. Для этого я включаю слои линий метро и станций с OSM, к последним включаю подписи. После этго создаю слои станций и линий метро, которые будут уже непосредственно на моей схеме.
Теперь нужно абстрагироваться от географии и рисовать, используя инструменты прилипания и наши сетки, при этом не забываем:
  • сохраняем углы линий кратными 45 градусам;
  • стараемся оставлять место для подписей станций;
  • не забываем, что в центре города плотность станций будет больше, поэтому в начале работы оставим там побольше места.
Пока выглядит хаотично, но первая линия нарисована, желтым я выделил оригинальную Юнусабадскую линию метро Ташкента, чтобы вы сравнили, как я от нее абстрагировался своей прямой.
Пока выглядит хаотично, но первая линия нарисована, желтым я выделил оригинальную Юнусабадскую линию метро Ташкента, чтобы вы сравнили, как я от нее абстрагировался своей прямой.
Я сначала ставлю точки станций, а уже потом рисую линию, мне так удобно все распланировать, но, возможно, вам будет удобнее наоборот. Чем сложнее ваша схема, тем больше раз придется перерисовывать отдельные куски. Вообще не бойтесь ошибиться, с первого раза обычно ничего не получается.
Чертим вторую линию, и уже видим места, где расстояния между станциями можно увеличить, но пока этого делать не будем и начертим оставшиеся две линии
С первого раза получилась вот такая схема, расстояния на которой нужно привести в баланс, но это уже будет гораздо удобнее чем с чистого листа:
Теперь подвигаем карту, чтобы разрыв в желтых станциях не был такой большой, а еще немного поднастроим стили линий и станций, чтобы черновая схема стала больше похоже на карты метро Ташкента, которые делали до нас. Делаем линии тоньше, а точки станций меньше, так нам проще будет на глаз прикидывать, сколько места мы оставляем под надписи названия станций.
Очередная итерация, и вот уже появился какой-то баланс в желтой линии. Но мне не нравится, что зеленая верхняя ветка занимает столько же места, сколько и центральные станции, где надо будет добавить много надписей. Поэтому, как и Гарри Бекк, искусственно увеличим центр.
Чтобы углы ваших линий метро и концы отрезков стали сглаженными, а не острыми, выставите в настройках знака линий “Стиль сопряжения” и “Концы” “Скругленное”.
Пару-тройку часиков подгонов и подписей, и вот уже получилась более менее читаемая карманная схема метро Ташкента формата А5, которую я смогу использовать в поездке. Да, она не идеальная, и ее еще есть куда улучшать, но она уже следует принципам Гарри Бекка
Чтобы показать станции метро, где может быть пересадка на другую ветку, я просто сделал слой с белыми линиями, которые по толщине чуть меньше линий метро, и начертил их между точками станций, где возможна пересадка.

Надеюсь, что вам понравился этот урок, и что вам захочется потратить время и сделать свою транспортную схему и скинуть ее в комментарии наших соцсетей.
Если же вы уже делали подобные схемы, то тоже делитесь ими в комментариях наших соцсетей (Телеграм/Вконтакте) и расскажите в каком ПО и для чего вы ее делали! 😊
Материал подготовил Александр Зуев