Хилшейд: во-первых, это красиво
Добавили на карты 2ГИС тень и свет, чтобы подчеркнуть рельеф местности. Теперь кажется, что так было всегда (и трудно представить, как было до)! Тем не менее, раньше горы, леса и равнины визуально ничем не отличались друг от друга: один и тот же светло-зелёный.
Хилшейд, в буквальном переводе «тень от холма», — это метод затенения рельефа. Он используется, чтобы создать более реалистичный вид местности. Проще говоря, вместо двухмерного отображения показать псевдотрёхмерное.
Чтобы подсветить и затемнить рельеф, первым делом этот рельеф нужно вычислить — для этого нам понадобились данные о высотах Земли. Такие данные часто нужны в научных целях, поэтому они есть в открытом доступе, и любой может ими воспользоваться.
Мы взяли данные JAXA — Японского агентства аэрокосмических исследований. Почти во всех случаях их собирает спутник, летающий вокруг Земли. Такой способ позволяет собрать информацию о всей планете, но при этом допускает большое количество ошибок. Например, спутник может решить, что высокие дома или густой лес — это горы, а на заснеженных областях может, наоборот, горы не заметить. Именно поэтому внутри у нас принято разделять понятия «цифровая модель рельефа» и «цифровая модель местности» Земли — технически хилшейд всё-таки отображает поверхность, не рельеф. «Не нужно всё воспринимать как горы», − говорит наш ведущий программист веб-карт.
Ошибки данных со спутника негативно влияют на карту, поэтому мы скрываем отображение высот при сильном приближении. При просмотре «на отдалении» хорошо читаются крупные формы рельефа: горы, лощины, русла рек:
В приближении видны мелкие формы рельефа, которые спутник может выделить ошибочно (например, принять за гору здание или дерево):
Базовые настройки
Освещение поверхности создаётся с помощью источника света (конечно, гипотетического). Интересно, что его нужно поместить в северо-западный (верхний левый) угол карты, чтобы тень отбрасывалась на нижнюю часть объекта (например, горы). Если разместить свет в другом месте, человеческий глаз может воспринять горы как дыры, и никакой объёмной картинки не сложится.
Хилшейд вычисляет освещенность поверхности на основе заданного направления компаса на солнце и определённой высоты над горизонтом.
Тонкие настройки
Взяв карту высот, мы преобразовали их в два вида многоугольников: одни затемняли, а другие осветляли изображение. Нюанс в том, что мы не раскрашивали многоугольники в разные цвета, а настроили прозрачность. Чёрные полигоны с разной прозрачностью накладываются один на другой, создавая плавное поэтапное затемнение.
С помощью такой несложной механики внешний вид карты сильно преображается.
Кроме несомненной красоты, карта с рельефом увеличивает информативность в разы. Посмотрим на кусочек туристического Алтая в обычном, «плоском» отображении:
А теперь — преображение!
Благодаря хилшейду видно, что небольшие речки на Алтае текут ровно вдоль гор, огибая их точно у подножья. Мы понимаем, что увидим на тропе вдоль реки — где будет высокая гора, где подгорье, а где равнина.
Планировать поездки и пешие маршруты так гораздо приятней.
Сейчас рельеф доступен на всех платформах.