В системе рендеринга MapLibre GL JS слой представляет собой базовую
единицу визуализации данных на карте. Каждый слой описывает способ
отображения геометрии или растровых данных и привязан к источнику данных
(source). Архитектура слоёв построена вокруг строгого
разделения типов, где каждый тип отвечает за конкретный визуальный стиль
и поведение при отрисовке.
Тип fill используется для отображения полигональных
геометрий с закрашиванием внутренней области.
Основные особенности:
Polygon и
MultiPolygonlineКлючевые свойства:
fill-color — цвет заливкиfill-opacity — прозрачностьfill-outline-color — цвет обводки (упрощённая
альтернатива отдельному line-слою)fill-pattern — текстурная заливкаТипичные сценарии:
Тип line применяется для визуализации линейной
геометрии: дорог, маршрутов, рек, границ.
Особенности поведения:
Основные свойства:
line-color — цвет линииline-width — толщина (может зависеть от масштаба)line-opacity — прозрачностьline-dasharray — пунктирный стильline-blur — размытие краёвИспользование выражений позволяет динамически менять толщину и цвет в зависимости от масштаба или атрибутов данных.
Тип symbol объединяет текстовые подписи и иконографику.
Это один из наиболее сложных типов слоёв, так как включает систему
размещения (label placement engine).
Функциональность:
Ключевые свойства:
text-field — содержимое текстаtext-size — размер шрифтаtext-font — семейство шрифтовtext-anchor — точка привязкиicon-image — имя иконки из спрайтаtext-allow-overlap — разрешение наложенияОсобенность:
Тип circle используется для визуализации точечных данных
без использования изображений.
Основные характеристики:
Свойства:
circle-radius — радиус кругаcircle-color — цвет заливкиcircle-stroke-color — цвет обводкиcircle-stroke-width — толщина обводкиcircle-opacity — прозрачностьПрименение:
Тип heatmap используется для визуализации плотности
точек.
Принцип работы:
Основные свойства:
heatmap-weight — вес точкиheatmap-intensity — общая интенсивностьheatmap-radius — радиус влиянияheatmap-color — цветовая шкалаheatmap-opacity — прозрачностьПрименение:
Тип fill-extrusion предназначен для построения
трёхмерных объектов на основе полигонов.
Особенности:
Основные свойства:
fill-extrusion-height — высота объектаfill-extrusion-base — базовая высотаfill-extrusion-color — цветfill-extrusion-opacity — прозрачностьfill-extrusion-vertical-gradient — вертикальный
градиентИспользование:
Тип raster используется для отображения готовых
изображений, разделённых на тайлы.
Особенности:
Свойства:
raster-opacity — прозрачностьraster-brightness-min / max — регулировка
яркостиraster-contrast — контрастностьraster-saturation — насыщенностьПрименение:
Тип raster-dem предназначен для работы с высотными
данными.
Функции:
Свойства:
raster-dem-opacityraster-dem-colorИспользование:
Тип hillshade применяется для визуального отображения
рельефа на основе DEM.
Принцип:
Свойства:
hillshade-exaggeration — усиление рельефаhillshade-shadow-colorhillshade-highlight-colorhillshade-accent-colorПрименение:
Тип background задаёт базовый фон карты.
Особенности:
Свойства:
background-colorbackground-opacitybackground-patternИспользование:
MapLibre GL JS поддерживает расширение через
CustomLayerInterface, позволяя создавать полностью
кастомные слои с WebGL-рендерингом.
Структура:
onAdd — инициализация ресурсов WebGLrender — основной цикл отрисовкиonRemove — очистка ресурсовВозможности:
Применение:
Архитектура слоёв построена на унифицированной модели:
source)type)paint)layout)Каждый тип слоя интерпретирует одни и те же геоданные по-разному, обеспечивая гибкость визуального представления без изменения источника информации.
Слои обрабатываются в порядке z-index, определяемом последовательностью в стиле. Важные аспекты взаимодействия:
style.layersТакая модель позволяет строить сложные многослойные композиции без потери производительности.