Перейти к основному содержимому

Хилшейд

Хилшейд (также hillshade, отмывка рельефа, теневой рельеф, shaded relief) – это метод представления рельефа на картах, при котором кажется, что на элементы рельефа сбоку падает свет. Карты с хилшейдом подчеркивают красоту рельефа и помогают показать формы ландшафта в деталях.

introduction

Хилшейд представляет собой иллюзию трехмерности и не изменяет геометрическое расположение объектов на карте (для этого нужен 3D-рельеф). Это наиболее легкий и производительный способ показать рельеф на карте.

По умолчанию хилшейд отключен. Для включения настройте его в Редакторе стилей.

Настройка в редакторе стилей

  1. Создайте новый стилевой слой с типом полигон и выберите для него данные Хилшейд светлый или Хилшейд темный:

Создать слой с хилшейдом

  1. Во вкладке Стиль настройте внешний вид полигонов. Рекомендуемые настройки представлены ниже:
Светлый слой
  • Цвет заливки:
    • Точка 1: цвет #FFFFFF1A, масштаб 10.
    • Точка 2: цвет #FFFFFF00, масштаб 14,5.
  • Цвет обводки:
    • Точка 1: цвет #FFFFFF1A, масштаб 10.
    • Точка 2: цвет #FFFFFF00, масштаб 14,5.
  • Ширина обводки: 0 px.

Пример настройки стиля для светлого слоя

Темный слой
  • Цвет заливки:
    • Точка 1: цвет #00000008, масштаб 10.
    • Точка 2: цвет #00000000, масштаб 14,5.
  • Цвет обводки:
    • Точка 1: цвет #00000008, масштаб 10.
    • Точка 2: цвет #00000000, масштаб 14,5.
  • Ширина обводки: 0 px.

Пример настройки стиля для темного слоя

Приоритет слоев с хилшейдом

Располагать эти слои следует после всех природных площадных объектов: воды, суши, растительности.

Пример расположения слоя с хилшейдом

Динамическое включение/отключение

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

  1. Добавьте к фильтрам стилевых слоев хилшейда зависимость от глобальной переменной. Например, для переменной hillshade это будет выглядеть следующим образом:

    Глобальная переменная hillshade

  2. Включите или отключите отображение слоев хилшейда при помощь метода map.patchStyleState():

    // Включить слои хилшейда
    map.patchStyleState({ hillshade: true });

    // Отключить слои хилшейда
    map.patchStyleState({ hillshade: false });

Пример использования глобальной переменной:



Добавление к существующему стилю

Слои хилшейда можно добавить к существующему стилю при помощи метода map.addLayer(). Пример:

map.on('styleload', function () {
map.addLayer({
type: 'polygon',
id: 'hillshade-dark',
filter: ['match', ['get', 'db_sublayer'], ['Hillshade_dark'], true, false],
style: {
color: ['interpolate', ['linear'], ['zoom'], 10, '#00000008', 14.5, '#00000000'],
strokeWidth: 0,
},
});
map.addLayer({
type: 'polygon',
id: 'hillshade-light',
filter: ['match', ['get', 'db_sublayer'], ['Hillshade_light'], true, false],
style: {
color: ['interpolate', ['linear'], ['zoom'], 10, '#FFFFFF1A', 14.5, '#FFFFFF00'],
strokeWidth: 0,
},
});
});

Важно: Событие StyleLoadEvent должно вызываться перед методами map.addLayer() и map.removeLayer(). Карта не может добавлять и удалять стилевые слои, пока не загрузится ее основной стиль.