Инициализация карты в MapLibre GL JS выполняется через создание
экземпляра объекта Map, который принимает конфигурационный
объект с набором параметров, определяющих поведение, внешний вид и
взаимодействие с картой. Именно на уровне конструктора задаётся
фундаментальная структура сцены, источники данных и параметры
пользовательского взаимодействия.
import maplibregl from "maplibre-gl";
const map = new maplibregl.Map({
container: "map",
style: "https://demotiles.maplibre.org/style.json",
center: [37.6173, 55.7558],
zoom: 10
});
Параметр container определяет HTML-элемент, в который
будет встроена карта. Он может быть задан строкой (идентификатор
элемента) или непосредственно DOM-узлом.
container: "map"
или
container: document.getElementById("map")
Ключевые особенности:
Параметр style определяет источник и структуру
визуального оформления карты. Это JSON-объект или URL, указывающий на
Style Specification.
style: "https://demotiles.maplibre.org/style.json"
Возможные варианты:
Стиль включает:
Параметр center задаёт координаты центра карты в момент
инициализации.
center: [longitude, latitude]
Пример:
center: [37.6173, 55.7558]
Особенности:
[долгота, широта];Параметр zoom определяет начальный масштаб отображения
карты.
zoom: 10
Характеристики:
Параметр bearing задаёт азимут вращения карты в
градусах.
bearing: 0
Свойства:
Параметр pitch управляет наклоном карты относительно
горизонта.
pitch: 45
Особенности:
Эти параметры задают допустимый диапазон масштабирования.
minZoom: 3,
maxZoom: 18
Поведение:
Параметр maxBounds ограничивает область, в пределах
которой пользователь может перемещать карту.
maxBounds: [
[30, 50],
[40, 60]
]
Структура:
[lng, lat].Применение:
Параметр hash включает синхронизацию состояния карты с
адресной строкой браузера.
hash: true
Поведение:
zoom, center,
bearing в URL;Параметр interactive включает или отключает
пользовательское взаимодействие.
interactive: true
При значении false отключаются:
Определяет, отображается ли блок атрибуции источников данных.
attributionControl: true
Особенности:
Параметр управляет тем, отображается ли карта в виде повторяющихся мировых копий при глобальном масштабе.
renderWorldCopies: true
Поведение:
true — бесконечная прокрутка по долготе;false — ограничение одним миром.Позволяет модифицировать все запросы к ресурсам карты (тайлы, стили, шрифты, спрайты).
transformRequest: (url, resourceType) => {
return {
url,
headers: {
"Authorization": "Bearer TOKEN"
}
};
}
Возможности:
Параметр projection задаёт тип географической
проекции.
projection: "mercator"
Поддерживаемые варианты:
mercator — стандартная Web Mercator;globe — сферическая проекция (в новых версиях).Влияние:
Позволяет требовать дополнительное действие пользователя для взаимодействия с картой (например, Ctrl + scroll).
cooperativeGestures: true
Применение:
Определяет длительность плавных переходов при смене тайлов и слоёв.
fadeDuration: 300
Особенности:
Включает сбор данных о загрузке ресурсов карты.
collectResourceTiming: true
Используется для:
Контролирует автоматическое обновление устаревших данных.
refreshExpiredTiles: true
Поведение:
true карта запрашивает актуальные тайлы;false используются кешированные данные.Параметр задаёт семейство шрифтов для иероглифических языков.
localIdeographFontFamily: "Noto Sans CJK"
Назначение:
Управляют поведением столкновений символов между слоями.
crossSourceCollisions: true
Эффекты:
Типовая конфигурация конструктора объединяет несколько параметров одновременно, формируя полную модель карты:
const map = new maplibregl.Map({
container: "map",
style: "style.json",
center: [0, 0],
zoom: 2,
bearing: 0,
pitch: 0,
minZoom: 1,
maxZoom: 18,
maxBounds: [[-180, -85], [180, 85]],
hash: true,
interactive: true,
attributionControl: true,
renderWorldCopies: true
});