В архитектуре стилей Mapbox GL JS слой типа background
представляет собой базовый визуальный слой карты, который заполняет весь
холст рендеринга и формирует фон под всеми остальными
геопространственными слоями. Он не привязан к источникам данных и не
зависит от геометрии — его назначение исключительно декоративное и
структурное: создание визуальной основы карты, поверх которой
отображаются тайлы, векторные слои, растровые данные и пользовательские
оверлеи.
Background-слой всегда занимает нижний уровень в порядке отрисовки.
Его ключевая особенность заключается в том, что он не использует
source и не обращается к данным геометрии. Это делает его
самым лёгким и быстрым для рендеринга элементом карты.
Основные функции:
Background может быть как полностью однотонным, так и изображением
(через background-pattern), либо динамически изменяемым
через выражения.
В стиле Mapbox GL JS слой определяется объектом следующей структуры:
{
"id": "background-layer",
"type": "background",
"paint": {
"background-color": "#1e1e1e",
"background-opacity": 1
}
}
Ключевым моментом является отсутствие секции source и
source-layer, что отличает его от всех остальных типов
слоёв.
Background-слой поддерживает ограниченный набор свойств, сосредоточенных вокруг визуального оформления.
Определяет цвет заливки всего канваса карты. Может задаваться как статическое значение или через выражения.
"background-color": "#ffffff"
Также поддерживаются интерполяции:
"background-color": [
"interpolate",
["linear"],
["zoom"],
0, "#0b1d2a",
10, "#3b6ea5"
]
Такой подход позволяет изменять фон в зависимости от масштаба, создавая эффект смены атмосферы карты при зумировании.
Определяет прозрачность слоя. Диапазон значений — от 0 до 1.
"background-opacity": 0.8
Используется для наложения фонового цвета поверх базового слоя или для плавных переходов между стилями.
Позволяет использовать изображение в качестве фона. Значение указывает на имя спрайта, загруженного в стиль.
"background-pattern": "diagonal-stripes"
В отличие от background-color, этот параметр создаёт
текстурированный фон, который может использоваться для декоративных
эффектов или имитации материалов.
Background-слой всегда рендерится первым, независимо от порядка объявления в стиле. Это гарантирует, что:
При наличии нескольких background-слоёв в стиле используется только первый корректно определённый слой данного типа; остальные игнорируются с точки зрения визуального результата, так как фон карты не предназначен для композиции из нескольких background-слоёв.
Background-слой может изменяться во время выполнения через API:
map.setPaintProperty('background-layer', 'background-color', '#2a2a2a');
или с использованием интерполяции:
map.setPaintProperty('background-layer', 'background-opacity', 0.5);
Это позволяет реализовывать переключение тем (день/ночь), реакцию на пользовательские действия или изменение состояния приложения без перезагрузки стиля.
Для background-слоя поддерживаются переходы через свойство
transition:
"background-color": "#000000",
"transition": {
"duration": 300,
"delay": 0
}
Переходы применяются к цвету и прозрачности, обеспечивая плавную смену визуального состояния. Это особенно важно при динамическом изменении темы карты или при смене стилей в зависимости от масштаба.
Mapbox GL JS поддерживает использование выражений для динамического вычисления свойств background-слоя.
Пример зависимости от масштаба:
"background-color": [
"case",
["<", ["zoom"], 5],
"#0b3d91",
"#f0f0f0"
]
Также возможно использование данных состояния карты:
"background-opacity": [
"interpolate",
["linear"],
["zoom"],
0, 1,
10, 0.7
]
Такая гибкость позволяет превращать background в активный элемент визуальной системы карты, а не только статическую подложку.
Несмотря на гибкость, background-слой имеет ряд ограничений:
source);Эти ограничения являются архитектурными и направлены на сохранение высокой производительности и предсказуемости рендеринга.
Background-слой является фундаментом визуальной иерархии. Он определяет восприятие всей карты ещё до того, как пользователь увидит географические данные. В сложных стилях он часто используется как элемент адаптивной системы оформления:
В композиции Mapbox Style Specification background выполняет роль нижнего слоя сцены, аналогичного «небу» или «подложке» в графических системах, на которую накладываются все остальные визуальные элементы.