;-)

Про Йемен и домохозяйку

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

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

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

  Википедия, км² Фактбук, км² Пиксели
1 Йемен 527 970 527 968 43 603
2 Таиланд 511 944 510 890 48 322
3 Испания 499 532 498 980 46 953
4 Камерун 469 261 472 710 45 466
5 Туркмения 467 131 469 930 44 986
6 Папуа — Новая Гвинея 453 583 452 860 43 836

По идее, любая современная домохозяйка способна измерить площадь Йемена на карте «Гугла» настолько точно, насколько ей хватит сноровки.

В «Википедии» написано, что Йемен занимает 527 970 км² суши, а у домохозяйки получилось натыкать 454 716 км², то есть меньше, чем в «Википедии», на 73 254 км².

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

После Йемена в рейтинге замечено много несоответствий. Как же на самом деле обстоит дело?

Чтобы выяснить правду, определяемся с первоисточником. Рассматриваем в этом качестве Яндекс, «Гугл», «Бинг», «Яху», ОСМ, «АркГИС» и другие. Все они используют общий стандарт WGS84 Web Mercator и не отличаются координатами, но у каждого сервиса есть свои нюансы.

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

Яндекс Гугл Бинг Яху ОСМ АркГИС Викимапия

Карта «Гугла» в сравнении с остальными оказалась самой подробной.

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

Все онлайн-карты состоят из тайлов. Тайл — это фрагмент размером 256×256 пикселей. Есть сервисы, позволяющие кастомизировать тайлы «Гугла», но, к сожалению, нельзя менять цвет пикселей нужных территорий. Есть, конечно, вариант — раскрашивать территории полигонами, однако этот метод отвалился практически сразу, из-за того что каждую лужу таким образом обвести нереально.

Поскольку раскрашивать территории предстоит руками, определяемся с масштабом — всего их 20.

После недолгих размышлений стало ясно, что для данной задачи идеально подходит 10-й масштаб. Чтобы представить размер этой текстуры, достаточно посмотреть на гигантский глобус, который пылится в студийном музее, и 30-дюймовый монитор с разрешением 2600×1600 пикселей.

Чтобы показать всю карту «Гугла» в 10-м масштабе одновременно, понадобится 4 тысячи таких мониторов.

Предположим, что для раскрашивания карты в 10-м масштабе нужен 1 дизайнер, чтобы управиться в течение месяца. Чтобы раскрасить карту в 11-м масштабе, понадобится 4 дизайнера, для 12-го масштаба потребуются уже 16 дизайнеров и т. д. Исходя из этой арифметики становится очевидно, что раскрасить пиксели территорий более чем в 11-м масштабе мясом из дизайнеров не получится.

Обращаем внимание на Ватикан — примерно 0,5 км² (самую маленькую территорию).

В 10-м масштабе Ватикан занимает 11 пикселей. Это около 20 пикселей на 1 км².

Чтобы окончательно решить вопрос с масштабом, сравниваем Сент-Люсию в 12-м масштабе с наложением сетки, которую образуют пиксели этой территории, в 10-м масштабе.

Кастомизируем тайлы таким образом, чтобы остались только пиксели суши и воды.

Склеиваем 262 144 кастомизированных тайла (256×256 пикс.) в 64 гигантских мегатайла с разрешением 16 384×16 384 пикс. В каждом мегатайле содержится 4096 тайлов.

Чтобы существенно упростить процесс раскрашивания и подсчета пикселей, удаляем антиалиасинг.

Для маркировки примерно 280 территорий рисуем матрицу 17×17 цветов (с запасом).

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

Матрица заполнена.

Чтобы нарезать мегатайлы обратно на 262 144 частей, создаем импровизированный сканер для тайлов в «Тридемаксе».

Сравниваем результат с остальными картами в «САС-планете».