Уличная картография

Уличная картография

«Он нам и нахуй не нужон, интернет ваш»
Из интернета

Я человек простой, урбанистов от пидарасов не отличаю, поэтому буду говорить прямо. Тайлы, которые отдают картографические сервисы — это не карты, а говно. То, что картографы занимаются вопросами навигации — это недоразумение, которое исчезнет вместе с пейджерами и CD-дисками. Мы напрочь забыли смысл навигации — если рядом навигатор (в смысле человека, а не пластиковой хуеты), то тебе не нужно смотреть карту. Я жду если не дронов, которые будут вести тебя к нужному адресу, то хотя-бы простого приложения без всяких карт, которому можно сказать: «Пивная «У братьев» и он расскажет на каком перекрестке куда свернуть. В мобильных навигационных приложениях карты нахуй не нужны.

Другое дело — уличная навигация. Карты, которые висят на остановках, в метро и расставлены по площадям. Свою навигационную роль они почти исчерпали, но это не значит, что от таких карт следует избавляться. Во-первых, они интересны. Во-вторых, карта любой территории — это такой же бренд (прости господи), как и его название. В-третьих, это кладезь для рекламодателей. Рано или поздно все города введут собственные дизайн-коды, тогда рекламные агентства не смогут завешивать фасады ебучими баннерами с рекламой матрасов и начнется эпоха картографического продакт-плейсмента.

Эту идиллию омрачает лишь то, что к заветному времени создавать годноту станет просто некому. Уличные карты всегда выглядели хуево. Во многом, потому что к их установке причастно государство — вспомните хоть одну частную сетку картографических билбордов. А все к чему государство (неважно какое) прикасается неизбежно превращается в мерзкую ебанину. Вдобавок, раньше у городских карт не было альтернативы, за исключением туристических справочников. Сейчас же наоборот, поганенькие, но карты есть у каждого. Уличная картография напрочь проебала мимолетный момент здоровой конкуренции.

К этим факторам добавился третий — в уличную картографию пришли хипстеры, убежденные в своем исключительном таланте. В результате с каждым годом мы видим на улицах все больше богомерзких решений стилистического, ситуационного и технического характера. Особенно это касается столичных городов. Так, например, Хельсинки почти полностью перешли на мониторы с картами от гугла:
Уличные карты в Хельсинки

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

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

Несколько лет назад подобное стали испытывать в Санкт-Петербурге. Напротив Московского вокзала установили терминалы с картой OpenStreetMap и сенсорным экраном. Это был просто вопиющий пиздец. Во-первых, нет более идиотского решения, чем использовать стандартный мапниковский стиль за пределами сайта openstreetmap.org. Во-вторых, карту дополнительно загрузили разными кнопками вырвиглазной расцветки и непонятного назначения. В-третьих, никто не подумал о том, что дисплей необходимо регулярно мыть. В результате, изучение карты сводилось к тому, что вы пять минут водите пальцем по жирному налету, пытаясь изменить экстент карты. В это время за вашей спиной пьют и обсуждают прогресс интеллигентные питерские бомжы.

Петербургу особенно не везет с OpenStreetMap. C завидной периодичностью появляются карты на основе данных проекта и каждый раз они выглядят чудовищно:
OpenStreetMap в Питере

Последний случай произошел совсем недавно — все остановки на центральных улицах обклеили плакатами с картами. Копирайты соблюдены. Компоновка аккуратная. Стиль свой. Но до обидного примитивный. Почему нельзя было потратить на него хотя-бы шесть дополнительных часов? И для чего точка «Вы здесь» превращена в размытое белое пятно?
Еще OpenStreetMap в Питере

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

И все-таки, эта карта в миллион раз лучше того ужаса, что заполонил отечественные города. В конце-концов, есть же определенные гигиенические правила: нельзя ковырять в носу двумя пальцами одновременно, стирать в бассейне трусы и применять яндекс-карты в наружной рекламе. Но у рекламщиков из Ростова-на-Дону свои понятия о чистоплотности:
Яндекс-карты в Ростове

Другой постоянной проблемой уличных карт является пренебрежение антропометрическими принципами. Вот, в том же Ростове создали карты для размещения на остановках. Мягко говоря не идеальные — видно что с геоданными никто не заморачивался — просто отобразили атрибутику как есть. В результате подпись улицы Седова появляется дважды друг за другом. Подпись реки сделана горизонтальной, что режет глаз, почти вся текстовая информация представляет собой подписи улиц — ни названия районов, ни придонских портовых зон. Текст сделан с избыточным буфером, слово «Проспект» зачем-то выведено целиком.

Но это все-же картографические вопросы. Тем более, что на карте требовалось изобразить маршруты движения общественного транспорта, а это одна из самых сложных задач в картографии. Допустим, не нашлось специалистов и возможностей, что-бы довести эту неплохую, но сырую версию до идеала. Но зачем было помещать легенду в то место, где ее можно прочесть лишь согнувшись пополам?
Уличные карты в Ростове

Поставить человека раком — одно из любимых занятий в картографии. Вот питерская сеть велопроката — текст на билбордах начинается где-то на уровне коленки. Да и сама карта сделана наотъебись — как и в Ростове, авторы проигнорировали обработку геоданных. В результате река подписана в четырех местах, причем в двух как «р. Нева», а в двух как «р. Большая Нева».
Карта велопроката в Петербурге

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

Но не стоит думать, что распиздяйство и похуизм исключительно отечественная беда. Те же европейцы не брезгуют лепить адскую халтуру. Обычно это касается карт, которые имеют отношение к официальным ограничениям и запретам. Взять хотя-бы стенды со схемой акватории города Йоэнсуу. Вынести такой пиздец на люди у нас решится не каждая собесовская тетка:
Карты в Йоэнсуу

Хотя я кусаю локти от зависти — в левом верхнем углу картинки изображена карта пляжа с вынесенным рельефом дна. Карта — говно, но решение элегантное, почему-бы не применить его в России? Хотя где у нас пляжи с картами? К огромному сожалению, уличная картография в России редка даже в крупных городах. Но при этом карты ничуть не уступают, а часто превосходят европейские. Компромисс удалось соблюсти лишь эстонцам — таллинские карты аккуратны, не перегружены и висят на каждой остановке. Обратите внимание на горизонтальную компоновку макета — оказывается текст вовсе не обязательно прятать под лавку:
Таллин карты на остановках

Если не брать Швейцарию, где плохая картографическая работа абсолютное религиозное табу, европейцы относятся к уличным картам гораздо прагматичнее нас. Советская картографическая школа выдрачивала скрупулезных педантов, в результате большинство карт напоминают третий концерт Рахманинова — произведение невероятной сложности, хотя слушать эту поебень невыносимо. Уличная навигация должна быть такой, что-бы в случае вторжения войск НАТО ты мог сорвать карту с любой остановки и корректировать по ней артиллерийский огонь. Даже если вы не можете позволить себе качественную полиграфию и на одном квадратном метре нужно изобразить пол-Москвы, все-равно, не нарисовать домики — это как Родину предать.

А вот в Лапееранте не заморачиваются. Нужна карта общественного транспорта — пожалуйста:
Карты в Лапееранте

Или вот карта немецкого Кельна при изучении которой остается открытым вопрос технологии достижения столь потрясающего визуального эффекта. Я до сих пор не пойму, это такой картографический стиль или у меня просто глаза кровоточат. Но зато проведена генерализация и нет никаких домиков:
Уличная карта в Кельне

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

Или еще пример оттуда-же:
Карты в Йоэнсуу

Стилистическая невыдержанность разных карт — общая проблема разных стран. Понятно, что карты в разных районах могут отличаться по оформлению, но сейчас это исключительно анархическая практика. Из всех городов, только в Шахтах удалось добиться стилистического единства уличной картографии. И то лишь по тому, что карта в городе только одна:
Карта в Шахтах

Весь остальной мир пока не готов придти к консенсусу. Остаются островки стабильности, вроде метрополитена, где обычно висят детальные олдскульные карты, но однажды их тоже придется обновлять. Я очень рассчитываю на то, что руководство метрополитена, особенно питерского не позволит хипстоте нассать себе в уши и сохранит прекрасный образец современной уличной картографии:
Карты в питерском метро

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

Картостиль I

Я всегда скептически относился к заявлению, что нельзя никому показывать работу до того, как в ней не останется места для улучшений. Особенно это касается сложной работы, в которой количество возможных улучшений растет пропорционально проделанной работе. С каждым улучшением соблазн перфекционизма погружает тебя все глубже в детали и порой требуется волевое усилие, что-бы остановиться и твердо сказать: на данном этапе идеал достигнут. Все остальное — потом.

Итак, встречайте. Картографический стиль под названием «I».

Стиль адаптирован для данных OpenStreetMap. Код написан на чистой иксэмельке под мапник. 

В качестве подложки использован обработанный растр Blue Marble Next Generation. Такое решение позволило совместить в одно целое карту и спутниковый снимок. Это особенно ценно потому, что стиль планируется использовать при обследовании объектов вне населенных пунктов, где данных о растительности и рельефе зачастую просто нет.

Безразлично чей Крым

Карта никогда не является самоцелью, именно поэтому картографический стиль разрабатывается в первую очередь исходя из назначения карты. Как бы не было важно художественное оформление, оно всегда подчинено функциональности. Карту в картостиле «I» предполагается использовать в качестве подложки, именно поэтому при разработке картостиля утончены дороги, а палитра составлена из приглушенных цветов. Красные и оранжевые объекты будут лежать на карте, поэтому в картостиле их быть не должно.

Средняя Россия и Поволжье

Для отображения рельефа использованы демки SRTM и ASTER с помощью которых подготовлена отмывка и шейпы горизонталей.

Эльбрус

Большая работа проведена с подписями. Нет, не просто большая — огромная. И все-равно я не могу сказать, что приблизился к идеалу. Максимум — нашел нужное направление движения.

Нерезиновая

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

Объемные домики на высоких зумах всегда влекут за собой проблему заслона части объектов. Эту беду можно решить двумя способами: сделать домики полупрозрачными (как на Яндекс-картах) или уменьшить их высоту. Я не стал играть с прозрачностью: во-первых, это проблематично с технологической стороны, а во-вторых просто вульгарно. Вместо этого, я добавил в здания арки: они не бросаются в глаза, но дороги не упираются в стены домов.

Петербургские дворы-колодцы

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

Фрагмент Челябинска:

Далекие от картографии люди могут спросить: а чем эта карта отличается от остальных подобных? Что ж, смотрите сами. Все картинки кликабельны. Слева вверху картостиль I, внизу картостиль mapnik standart OSM, справа вверху Яндекс-карты, справа внизу карты от Google.

2 зум:

3 зум:

4 зум:

5 зум:

6 зум:

7 зум:

8 зум:

9 зум:

10 зум:

11 зум:

12 зум:

13 зум:

14 зум:

15 зум:

16 зум:

17 зум:

18 зум:

Картостиль I подготовлен для отображения с 0 по 20 зум, но столь крайние масштабы сравнивать просто не с чем.

Я мог бы часами рассказывать про нюансы картостиля «I». Но лучше не буду растягивать этот бесконечный пост и молча пойду домой. Пусть моя работа говорит сама за себя.

Как я создавал картостиль «L»

«Художника каждый может обидеть.
Убежать не каждому удается.»
Народная мудрость

 

Вот все жалуются на теплую зиму, а зря. Замерзло бы Грушевское водохранилище у моего дома, как бы я тогда в нем купался в декабре? А если-бы не купался, а потом не тусил по поселку, разве обалдевал бы я сейчас от дикой боли в горле? Правильно, не обалдевал и над картой города Шахты, за которую периодически берусь, не сидел бы.

Но сегодня, я хочу рассказать вам не столько о карте, сколько о картостиле вообще. Исходные данные мои понятны: OpenStreetMap в шейпах от Geofabrik, плюс собственные картографические наработки. Данных, по нынешним временам — кот наплакл, грех не засеть часов на сорок-пятьдесят и не скомстролить из них контагий красоты. Собственно, я только что это сделал, а потому рад представить вам картостиль под названием «L». Не скажу, что название не имеет отношение к противостоянию Л и Киры, но по большому счету я и сам не знаю, откуда оно взялось. Да и не хочу знать. Лучше вместо всех этих пустяков я расскажу вам о некоторых своих мыслях, которые годами вызревали, пока неожиданно не полезли из меня во все стороны как из старого матраса.

Чего стоят сейчас данные неглобального покрытия? Правильно: ничего или почти ничего. Неважно сколько у тебя данных, важно как ты с ними работаешь. Эту мысль я периодически пытался доносить до аудиторий в виде неструктурированного потока высказываний. Чем полнее базы геоданных, тем меньше значение каждого нового байта, тем выше требования к обработке и отображению пространственной информации. Думаю об этом же говорил и Стив Кост, заявляя: «Сработало-то замечательно, люди отличные, OSM пыхтит и катится… но дни крутых поворотов и рисков позади. Это сводит с ума: открытую карту можно развить сотней способов, а не просто смотреть, как она немного прирастает каждый год, и собирать очередную конференцию.» В нас пропал дух энтузиазма», как говорил еще Ипполит Георгиевич. Наполнение базы геоданных первоочередная задача партии и правительства, а кильками в наш век отравиться гораздо проще, чем не смочь на основе данных изготовить карту.  Скорее всего, этот флер времени рано или поздно развеется, но хотелось бы застать времена когда вопросы картографического дизайна будут если уж не решаться, то хотя-бы подниматься на обсуждение.

Впрочем, довольно лирики. Я же про «L» рассказ веду. Сразу скажу, стиль не включает в себя POI. Это не значит, что он не предназначен для их отображения (скорее наоборот). Дело в том, что при таком ничтожном количестве ангажированных точек интереса, должным образом визуализировать и проверить их читаемость просто невозможно.  Будут POI-будет развитие картостиля «L». Покамест можно оговорить, что предлагаемый картостиль избавлен от точек интереса специально (что на самом деле является одной из главных причин).

Создание картографического стиля — это мучительная процедура выбора из бесконечного числа вариантов того оформления, при котором читатель увидит сердцевидный объект, даже если на его месте картограф нарисовал обычную жопу. Алгоритмизация в картографическом дизайне вещь достаточно спорная: никто не мешает на основе существующих концепций ТРИЗ выработать логические подходы к оформлению карты, однако, большей частью этот процесс остается творческим, осуществляемым на основе интуиции и опыта.

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

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

Применяя табличный алгоритм вы прежде чем приступить непосредственно к работе с данными создаете таблицы условных обозначений. Это настолько старый, проверенный и рекомендуемый метод, что я более чем уверен: хрен кто им пользуется в реальной практике. Потому что для того, что-бы построить гармоничную таблицу условных обозначений требуется космические запасы времени, а я сейчас и без всяких таблиц все по-быстрому нарисую…

Суть циклического алгоритма ясна из названия: настраиваете первый слой, отключаете его и добавляете следующий. Начинаете настройку второго слоя на белом фоне, завершаете на фоне включенного первого слоя. Далее отключаете второй слой и по тому-же алгоритму настраиваете третий. Если принять за x редактируемый в текущий момент слой, включенный слой принять за единицу, отключенный за ноль, а место в последовательности за номер слоя, то алгоритм можно записать так: x-0x-1x-00x-10x-11x… Кажется сложным, но не переживайте, если слоев много, вы легко сойдете с ума.

Используя ступенчатый алгоритм вы добавляете слой максимального заполнения, настраиваете его цветовую гамму по вашему вкусу. После добавляете слой с меньшим наполнением, настраиваете его так, что-бы оба слоя хорошо читались. Добавив третий слой, отключаете первые два и настраиваете его по своему усмотрению. Позже изменяете яркость, контраст или прозрачность первых двух слоев на минимальную величину, достаточную для нормального отображения третьего слоя. Потом добавляете четвертый и далее пока не закончатся слои, либо пока не упретесь в предел такого метода. С физической точки зрения метод не выдерживает никакой критики, но иногда бывают случаи, которые просто не разрешить стройными алгоритмами. «Здесь нужна живая кровь, катарсис, преступление». Ибо на каждую хитрую бритву Оккама всегда можно найти теорему Геделя с винтом.

Повторюсь, я не претендую на ценность этих конкретных алгоритмов. У каждого повара своя галинабланка. Но я хочу сказать, что к вопросу создания картостиля можно подходить более формализованно чем: «-Давай дороги пошире сделаем. -Вроде лучше стало, давай еще домики перекрасим. -Блин здорово, но надписи не видны, нужно размер текста увеличить — А как? — А ты дороги поуже сделай!»

При разработке картостиля «L», я исходил из базового алгоритма, при котором первой рисуется максимально бледная подложка, на которую накладываются слои с обратно пропорциональной количеству объектов насыщенностью и яркостью слоя. Чем больше объектов в слое, тем бледнее и невзрачнее слой. В моем случае, в качестве подложки выступал слой с индивидуальными жилыми строениями:

Подложка-privacy

 

В OSM этому слою в теории должно соответствовать значение landuse=residential. Но в связи с трудоемкостью обрисовки участков, тег с таким значением обычно покрывает почти весь город целиком и практически не несет никакого смысла. В моем случае, этот слой (privacy) отрисован руками на весь город, что позволяет сделать вывод о наличии и характере проездов даже на территориях, лишенных дорожного графа OpenStreetMap.

Вообще, вопрос картирования частных земельных участков не так уж прост. Я писал уже об этом (смотри пост «Скилл прогрессивности«). Американо-европейская традиция картирования домиков перекочевала к нам в первозданном виде. При этом никто не задумывается над тем, что на западе не столь развита нездоровая традиция огораживать себя сплошными заборами, устраивая внутри каждого, социализм на отдельно взятом участке. Если в Пало-Альто для навигации мне требуются в качестве ориентиров дома, до в шахтинском поселке мне требуются границы частных участков. Если там каждый дом имеет свой номер, а улицы простреливаются во всех направлениях, то здесь номер имеет непосредственно участок, на котором может располагаться до пяти крупных строений (дом, сарай, баня, летняя кухня, гараж). Территория просматривается в лучшем случае вдоль улицы, а невозможность приблизиться к большинству строений никак не отмечена.

Приведу пример из упомянутого поста. Фрагмент карты поселка ХХ лет РККА, созданной в гугле по американскому образцу. Ощущение, что это уютный закрытый коттеджный поселок на берегу реки

665

 

На самом деле, ситуация обстоит вот-так:

666

 

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

Оформление границы населенных пунктов не представляет большого интереса. Главное, что-бы она была всюду видна, однозначна, но не заслоняла собой объкты и надписи. Исходя из этого она сделана тонкой, непрозрачной и идущей поверх почти всех объектов (кроме надписей населенных пунктов.

граница

 

Примерно то-же можно сказать о железных дорогах. Железку должны узнавать и легко выделять все. Для города Шахты это особенно важно, поскольку здесь до недавнего времени существовала кольцевая железная дорога:

railway

 

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

В отличие от железных, отображение автомобильных дорог является одним из самых важных и сложных этапов. Особенно, если ваш граф взят из OpenStreetMap. Как образуются значения тегов дорог в OSM? Очень просто, вы берете название ближайшей улицы, транслитерируете его на английский, умножаете количество букв на случайное число, а потом случайной комбинацией получаете значение тега highway. Если как следует поискать, в OSM можно найти дорогу, подходящую для каждого. Даже если вы одноухий цирковой мишка на восьмиколесном стеклянном велосипеде, будьте уверены, где-то на Земле для вас есть соответствующим образом тегированная дорога.

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

road1

 

Дороги в провинции это исключительно водительская информация. Здесь, в далекой глубинке велодорожек нет, пешеходы ходят там где грязи меньше, а утренний highway=living_street легко превращается в ночной highway=raceway. Соответственно, всю классификацию достаточно просто разбить на пешеходные линии, в которых придется покинуть машину (footway, path, pedestrian, steps), степные, полевые и лесные дороги на которые не рекомендуется выезжать в распутье на заниженных вазах (track), обычные центральные дороги, основным отличием которых является наличие асфальта на всем протяжении (trunk, secondary), главные центральные дороги, отличающиеся дополнительными ограничениями, вероятностью пробок и ямочного ремонта (primary). Все остальные дороги рассматриваются как проезды во всех смыслах этого слова. Проезды могут быть заасфальтированы в зоне высотной застройки, но чаще имеют грунтовое покрытие, либо покрытие из брусчатки, выложенной еще пленными немцами после войны.

После классификации дорожная сеть выглядит так:

road2

 

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

Самый потрясающий объект в современных геоинформационных системах — это, вне всякого сомнения, гидрография. Все можно пережить, все можно обосновать, принять на веру, проникнуться, войти в положение, выдать за фичу. Но гидрография — это адская картографическая дьвольщина! Это, черт возьми, философское отражение всей нашей жизни: каждый видит, что происходит какая-то шняга, но все могут привести сотню доводов в качестве оправдания. Занимаюсь картами в общей сложности шестнадцать лет и до сих пор не понимаю: почему гидрографию мне приходится показывать тремя типами слоев?! Нет, я знаю как это оправдать, но понимать — все равно не понимаю. Водоемы — полигонами, водотоки — линиями, источники — точками — это невероятный бескомпромиссный феерический бред. Да-да, водотоки можно буферизировать в полигоны, а источники перевести в POI, но открываешь новый проект, а там, етитская богомышь! — опять тот же маразм.

А ведь еще нужно исхитриться так, что-бы водотоки лежали под водоемами, а водоемы (которые при экспорте OSM-Geofabrik запихнуты в слой natural) не перекрывали водотоки. Сделать это минимальными усилиями можно только используя единое цветовое оформление:

вода

 

Слой nature, несмотря на его популярность оказался едва ли не самым простым для отображения. Все многообразие значений этого тега легко сводится к значению water, о котором я говорил выше и fores+park.

— Но позвольте! Как можно объединять в одну группу стоь разные значения? — наверняка спросите вы. А вот и можно. Ибо, за исключением ничтожной площади в центральном парке, различия между зоной лесовыращивания и рекреационным лесом полностью отсутствуют. Полностью. Нет, совсем полностью. Хозяйство не ведется ни там, ни там. Породный состав одинаков. Возраст, бонитет, состояние, характер посадки (все лесные культуры) — одинаково. Если эти леса и различаются чем-то между собой, то только тем, что документы на них хранятся в разных местах. А при тотальном бардаке и неразберихе, которая не прекращается уже четверть века, это и вовсе теряет всякое значение.

nature

 

Обратите внимание, объекты слоя natural исполнены светлой заливкой с темным кантом, в то время как базовая подложка исполнена с белым кантом и более темной заливкой. Но и тут и там подложка и кант имеют сходные цвета. Это старющщий метод, о чем я узнал еще когда на флоте служил. Почему этим простым правилом так часто пренебрегают я искренне не понимаю.

Про оформление слоя landuse можно говорить долго. Это, наряду с дорогами один из самых сложных слоев для визуализации. Я лучше покажу что получилось:

Сам слой:

landuse1

 

Поля, промышленные объекты, военные части  и тюрьмы (да, это «девятка»)

поля, военные части, промышленные зоны

 

Промышленные объекты, скверы, пустоши, гаражи, объекты торговли (розовые) и стройки (серые с пунктирной границей):

Гаражи, стройки, скверы, пустоши, коммерческие зоны, промышленные объекты

 

Я долго думал как показать кладбища. Так, что-бы с одной стороны они были близки к оформлению лесов и скверов, с другой стороны, что-бы они ясно передавали все архитектурное безумие наших кладбищ, с третьей стороны, что-бы от них не веяло депрессией, а с четвертой, что-бы изображать их было технически очень просто.

Кладбища:

kladb

 

Промышленные зоны, карьеры и садовые участки:

сады, промышленные зоны и карьеры

 

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

А пока, можете наслаждаться моей работой. Террикон шахты Пролетарской диктатуры. Есть претензии к геометрии (у него в реальности несколько вершин), но внешний образ передан верно.

терриконы

 

А как же текст? Подписи дорог (видимы в диапазоне масштабов [1;40 000]) на карте исполнены черным цветом с белым буфером 1 мм, шрифтом: Ubuntu Condensed Regular, 8 точек, с размещением поверх кривых.

Подписи гидрографии на карте исполнены #1f78b4-цветом с белым буфером 1 мм, наклонным шрифтом: Ubuntu Condensed, 9 точек, с размещением над линиями вдоль кривых во всех масштабах. Вообще, гидрография, о которой я писал выше, выносит мозг не только своей разнослоевостью, но и траблами при попытке автоматического расставления подписей. Время от времени на один участок озера или водохранилища попадает дублирующая надпись «река такая-то». В результате смотришь на предпечатный макет, а там на месте летнего купания надпись: «Грушевское вдГхрру.шевка» или что-то подобное. Приходится лезть в геометрию и беспощадно ее резать.

Нумерация зданий выполнена шрифтом Ubuntu Condensed Regular, 9 точек, черный с белый буфером в 1 мм, на расстоянии от центроида видимой части в диапазоне масштабов [1;10 000].

Подписи населенных пунктов вокруг точки, видимы на всех масштабах. Черным цветом с белым буфером в 1 мм:
places_type__city: Impact Обычный, 20 точек,
places_type__hamlet: Impact Наклонный, 18 точек,
places_type__town: FreeSerif Курсив, 18 точек,
places_type__suburb: FreeSerif Обычный, 14 точек,
places_type__village: Ubuntu Condensed Regular, 14 точек,

 

Населенные пункты

 

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

Другой момент связан с отказом от гротеска в двух несвязанных (на первый взгляд) между собой случаях: подписях небольших городов и подписях районов города Шахты. Все дело в том, что понятие «района» в городе Шахты весьма специфично. В отличие от других городов, Шахты развивался из множества отдельных независимых поселков. Каждый из таких поселков по всем своим характеристикам близок к большой деревне или даже небольшому городу. Достаточно сказать, что я еще застал времена, когда вместо сегодняшнего «поехать в центр» говорили «поехать в город». Выбор шрифта с засечками указывает на сходство между небольшими городами и городскими районами. Но в то же время, использование курсива и величины шрифта позволяет не доводить это сходство до абсурда.

Номера индивидуальных жилых территорий выполнены черным цветом без фона, наклонным шрифтом: Ubuntu Condensed, 8 точек, с размещением в центроиде объекта с видимостью в диапазоне масштабов [1;5 000].

надписи ижс

 

В совместном итоге получается вот такая картина:

Центр

 

Или вот такая:

Артем

 

Честно говоря, я и сам не понял, про что у меня пост получился. Вроде как про «L», а с другой стороны про рассуждения о небесных пирожках. Я так думаю. Создание картостилей вещь сложная и ответственная, а уж картографический дизайн и подавно. Я вот только что на себе испытал. Если вам понравилось, советую повторить опыт. Если нет, не беда, можно пиво пить, праздники же. Вот вам мои файлы стилей, берите кто хотите, выкладываю под Beerware-лицензией (Revision 42). А я спать пойду.

Знаете что самое сложное? Научиться не реагировать на идиотов

P.S. Если примите решение использовать эти наработки в коммерческом проекте, уточните лицензионную чистоту шрифтов Impact

P.P.S. Порядок слоев в проекте:
names
boundary
railways
mask_building
roads
waterways
natural
terricons
landuse
privacy