Эклектика в картографии

Согласен, что Остап Юрского — это классика, но картографам предлагаю смотреть «Двенадцать стульев» более позднего времени, где Бендера играет Миронов. Именно в этом фильме карта убедительно раскрывает важный, но неочевидный потенциал.

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

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

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

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

Карта способна донести не только географическую, но и любую другую информацию. «Двенадцать стульев» — прекрасный тому пример. Во времена контроля и цензуры никто не произнес ни одного слова, но все прекрасно поняли о чем именно идет речь.

Куда едет Россия

Куда едет Россия

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

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

Разбираясь в этом вопросе, я пытался использовать коэффициент асимметрии. Идея была такова: отрицательные значения коэффициента по выборке ежегодной численности жителей покажут прирост населения, положительные — отток. Идея, в целом верна, но динамика численности жителей в русских городах не всегда нормальна. Другое дело — отношение числа жителей в городе на 1 января 2019 года к медианному числу жителей за период 2010 — 2019 г.

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

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

За Уральским хребтом выделяется Омск, Братск и дальневосточные города. Люди не хотят там жить ни в какую. В остальных динамика роста населения положительна. Это не от того, что города прекрасны, а от того, что в окрестных деревнях совсем плохо, но до Москвы далеко. Особо показателен юг Ямало-Ненецкой автономной области. Все что не область нефте-газозобычи (тот же Ноябрьск) не может сохранить жителей. В Югре особо выделяются светлая точка низкого роста количества жителей в Нефтеюганске (как там поживает Ходорковский?) и темная точка Сургута с его прекрасным университетом.

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

P.S. А вообще я исследовал применимость практики разводки микроэлектронных плат к созданию выносок на карте. Но не пропадать же добру.

Уроки истории

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

Первым бросается в глаза, что карта больше подходит для учебника альтернативной истории Фоменко. Карты реальных событый должны быть четко привязаны к реальному периоду времени. Здесь мы видим рядом Царицын и Волго-Донской канал. Это примерно то же самое, что правление Екатерины Второй в Ленинграде. При этом Цимлянского водохранилища нет, вместо него вымышленный меандр, а Москва судя по всему вообще во власти советов. С другой стороны, значки в легенде не совпадают по размеру со значками на карте, можем предположить, что это альтернативная версия противостояния красных и белых в Гражданскую, а легенда по ошибке из другой карты сюда перекочевала.

Стилизация под старину — это всегда крайне сомнительная затея. Мону-Лизу любой дурак может нарисовать, а ты попробуй банкноту изобрази. Но если уж автор решил прибегнуть к этому приему, то почему сделал исторические пятна в самых трудночитаемых местах карты? Каким образом бумага состарилась, а текст и линии выглядят новыми? Почему соотношение сторон листа старинной карты на 94% совпадает с аналогичным соотношением в формате A4?

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

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

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

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

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

Как же так, Яндекс?

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

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

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

Идея векторных тайлов хороша, спору нет. Главное помнить, что при шаге зума в 0.5 и диапазоне зумов 2-19 пользователь при масштабировании увидит от нескольких десятков до нескольких сотен разных карт, каждая из которых должна выглядеть как минимум вменяемо.

Если уж вы переходите на современную технологию, хорошо бы и подход к проектированию обновить. А то выглядит так, словно египтяне освоили фотошоп и теперь на компьютерах рисуют рисуют чуваков с повернутыми головами.

Фомич

О связи проекции с пониманием Земли кто только не говорил, от Каврайского до Дубового. Каждый год новый перец открывает людям глаза на страшную тайну Меркатора, понятие локсодромии, проекцию Штаба-Вернера или другую пыльную хрень.

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

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

На этой картинке четыреста крупных рек России. Попробуйте отыскать реку Фомич. Она протекает по Анабарскому плато впадая левым притоком в Попигай. Если задание выглядит сложным — попробуйте сделать то же самое на любом картографическом сервисе. Или найти залив Бабушкина. Или Северные Увалы. Или Становой. Кто вообще сейчас помнит про эти топонимы?

Математическая картография веками искривляла мир. Новые технологии очистили его за пару десятилетий. Искривлять стало нечего: остались лишь границы и береговые линии. Да и те ненадолго.

Как я создавал картостиль «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

Первая производная по дизайну карт

Написав вчера заметку о косяке отображения Mapnika, весь день сегодня думаю о математических методах в картографическом дизайне. В свое время этому были посвящены довольно-таки интересные работы (например А.В. Востокова «Оформление карт»), но в последние годы ничего подобного мне на глаза не попадалось.

Идею подсказал Илья Зверев в блоге OSM, своей мыслью по поводу того, что Mapnik в OSM вовсе не косячит, а делает все как надо, поскольку «дороги важнее, чем контуры домиков». У меня-таки есть что на это ответить.

Первостепенные дороги важнее чем второстепенные это да. Первостепенные здания важнее чем второстепенные — тоже да. Но ни дороги, ни здания не могут быть важнее друг друга. Задача картографа не в том, что-бы выбрать приоритетный для показа объект, а в том, что-бы показать оба объекта, не перегрузив при этом карту. Вот, в гуманитарной карте это получилось (я про ситуацию с домиками). Что мешает сделать это в mapnik-е?

Но не о том речь. Периодически из под всех плинтусов слышно: «Я то в советское время Ооооо!» «Раньше карты были лучше!, Раньше карты были хуже!»

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

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

Да чего уж кокетничать. Можно тогда и вторую производную взять, получив значение ускорения развития картостиля.

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

Первое что приходит в голову: такие производные дают ключ к определению влияния каждого из элементов картостиля на общую читаемость карты. Действительно, поэтапно добавляя элемнты с разным цветом, светлотой, текстурой, геометрией, размером и прочими характеристиками, мы сможем итеративно рассчитывать производную, после чего соотнести полученные значения с параметрами добавленных на карту элементов… А вот херасдва! Я ставлю ящик пива на то, что читаемость карты подчиняется не аддитивному, а эмергентному закону. Более того, не удивлюсь, если при выборе влиящих на отображение показателей мы столкнемся с принципом, который в экологии называется «бочка Либиха», согласно которому решающее значение имеет только критичный фактор среды (в нашем случае визуализации данных).

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

Где-то я о таком уже слышал.

Дорога

20 лет позитива

Меня периодически обвиняют в исключительной депрессии моих текстов. Чего, мол, у тебя все вечно в черных тонах: что ни пост, то про говно. А действительно, чего это я? Напишу-ка я эссе, полное возвышенных чувств и красивых слов. Почувствую хоть раз себя высокодуховным эссеистом (не путайте с похуистом, подонки!).

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

Флагштоки

Единственное, что не удалось похерить, так это климат. Наше степное солнце позволяет восемь месяцев в году наслаждаться визуальными ништяками:
Грушевка
В отличии, к примеру, от Воркуты, которая очень похожа на Шахты. Тоже шахтерский город. Тоже повсеместный распиздос. Только в отличии от нас, у них 9 месяцев в году зима и заморозки в середине августа:

Воркута

Воркута в августе

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

На фоне трудов советских архитекторов, современная работа над городским стилем выглядит смешнее чем эякулянт полевки на фоне океана. Посмотрите на решетку на воротах СУМСа:

Ворота Сумса

А теперь посмотрите на ограждение на улице Шевченко:
Ограждение на улице Шевченко

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

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

Забор с егозой
Строгость, аж пиздец. Особенно учитывая, что через одну секцию, забор выглядит так:
Забор без егозы
Примерно по такому же принципу устроены юридические, моральные и традиционные правила проживания в России: запрет на движение это не знак остановки, а символ объезда.

Эй, вы! Позитивные мои. Что-то не слышу ваших восхищенных вздохов
Позитив

СУМС

А ведь поводов для позитива не просто много — их до хуя, культурно говоря, хоть жопой жри.Например, несмотря на все кризисы, пруд имени 20 лет Рабоче-Крестьянской Красной Армии (да, именно так он и называется) продолжают регулярно убирать. Поэтому там всегда чисто и приятно (вот, вот он, позитив!):
Пруд 20 лет РККА
Убирают! Правду говорю. Если вы в это не верите — перейдите на противоположную сторону дороги. Весь мусор, который убрали с пляжа лежит там:
Мусор
Труп елки
Не волнуйтесь. Этот труп, завернутый в пакет, принадлежит елке — с новогодних праздников осталась.

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

Эй, позитивные! Почему вы не гуляете по весенним шахтинским улочкам?
Улица
Очень рекомендую погулять по поселку ХХ лет РККА. Оттуда, с улицы Штрековой открывается прекрасный вид на трамвайное депо офис по контролю за духовными скрепами:
Вид на духовные скрепы
В жопу проспект Победа Революции, в пизду шахтинский Арбат — Шевченко, нахуй улицу Советскую. Я приглашаю вас в Нагорный Тупик! Ну что-же вы не идете?
Нагорный Тупик
Весь позитив-хуйня собачья. Также как и негатив, он формируется как защитная реакция организма на недостаток естественных раздражителей. Люди, которые уверяют, что к говну, грязи, хамству, мусору, долбоебизму, пропаганде, власти и бедности следует относиться более спокойно — вовсе не позитивные чуваки. Это духовно выхолощенные похуисты, поклавшие хуй на все что только можно. Им одинаково безразличен тотальный пиздец и всеобщее счастье. Разве может человек, не приходящий в ярость от вида хуево сделанной работы увидеть красоту? Хотя бы в тех же терриконах:
Террикон
Или в шахтинских мостах из бутового камня?
Мост
Или в шахтинских мостовых без асфальта?
Дорога
Эти и многие другие прекрасные вещи, напрочь перечеркивают возможность покинуть тот перманентный пиздец, в котором мы находимся. Нет другого города, который давал бы столь широкий спектр ощущений: от экстатического оргазма до тошнотворного омерзения. Именно эта тотальная прогредиентная зависимость превращает Шахты в жизненно важный орган человеческой души.
А весь ваш позитив можете засунуть себе в жопу.