Хилшейд
Хилшейд (также hillshade, отмывка рельефа, теневой рельеф, shaded relief) – это метод представления рельефа на картах, при котором кажется, что на элементы рельефа сбоку падает свет. Карты с хилшейдом подчеркивают красоту рельефа и помогают показать формы ландшафта в деталях.
Хилшейд представляет собой иллюзию трехмерности и не изменяет геометрическое расположение объектов на карте (для этого нужен 3D-рельеф). Это наиболее легкий и производительный способ показать рельеф на карте.
По умолчанию хилшейд отключен. Для включения настройте его в Редакторе стилей.
Настройка в редакторе стилей
- Создайте новый стилевой слой с типом
полигон
и выберите для него данные Хилшейд светлый или Хилшейд темный:
- Во вкладке Стиль настройте внешний вид полигонов. Рекомендуемые настройки представлены ниже:
Светлый слой
- Цвет заливки:
- Точка 1: цвет
#FFFFFF1A
, масштаб10
. - Точка 2: цвет
#FFFFFF00
, масштаб14,5
.
- Точка 1: цвет
- Цвет обводки:
- Точка 1: цвет
#FFFFFF1A
, масштаб10
. - Точка 2: цвет
#FFFFFF00
, масштаб14,5
.
- Точка 1: цвет
- Ширина обводки:
0 px
.
Темный слой
- Цвет заливки:
- Точка 1: цвет
#00000008
, масштаб10
. - Точка 2: цвет
#00000000
, масштаб14,5
.
- Точка 1: цвет
- Цвет обводки:
- Точка 1: цвет
#00000008
, масштаб10
. - Точка 2: цвет
#00000000
, масштаб14,5
.
- Точка 1: цвет
- Ширина обводки:
0 px
.
Приоритет слоев с хилшейдом
Располагать эти слои следует после всех природных площадных объектов: воды, суши, растительности.
Динамическое включение/отключение
Хилшейд, как и любые другие стилевые слои, можно включать/отключать при помощи глобальных переменных стиля.
-
Добавьте к фильтрам стилевых слоев хилшейда зависимость от глобальной переменной. Например, для переменной
hillshade
это будет выглядеть следующим образом: -
Включите или отключите отображение слоев хилшейда при помощь метода 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(). Карта не может добавлять и удалять стилевые слои, пока не загрузится ее основной стиль.