Иммерсивные дороги
Иммерсивная дорожная инфраструктура отображает дороги как реалистичные трёхмерные объекты, а не как схематичные линии. Это повышает детализацию карты и создаёт эффект присутствия, особенно при использовании совместно с другими иммерсивными возможностями: 3D-рельефом, освещением и 3D-моделями.
Компоненты инфраструктуры
К объектам иммерсивной дорожной инфраструктуры относятся:
-
Пример фильтра данных для слоя 3D-модель:
[
"match",
["get", "db_sublayer"],
["Road_support_column"],
true,
false
] -
Пример фильтра данных для слоя Полигон:
[
"match",
["get", "db_sublayer"],
["Transport_Roadbed"],
true,
false
] -
Пример фильтра данных для слоя Полигон:
[
"==",
["get", "sublayer"],
"PolygonMarkings_waffle"
] -
Пример фильтра данных для слоя Плоское изображение:
[
"==",
["get", "sublayer"],
"PointMarkings_lane_directions"
] -
Пример фильтра данных для слоя Линия:
[
"==",
["get", "sublayer"],
"LinearMarking_ParkingPlaces"
] -
Пример фильтра данных для слоя Транспортная развязка:
[
"match",
["get", "sublayer"],
[
"Roadbed",
"Main_Roadbed",
"Gas_station_Roadbed",
"Parking_Roadbed",
"Constructed_Roadbed",
"Intraquarter_Roadbed",
"WithMarking_Roadbed",
"Pocket_Roadbed",
"PhysicalBarrier_Roadbed",
"Road_bed_outline",
"Roadbed_outline"
],
true,
false
]
Начиная с определённого уровня масштабирования (в базовых стилях Редактора стилей — с уровня 16) эти объекты отображаются вместо схематичных линейных дорог.
Включение иммерсивных дорог
Иммерсивные данные требуют больше ресурсов устройств (памяти, CPU и трафика) и могут снижать их производительность.
Чтобы отобразить на карте реалистичную дорожную инфраструктуру, используйте подготовленный стиль и включите иммерсивный режим через API.
Чтобы включить режим, установите для глобальной переменной immersiveRoadsOn значение true с помощью метода patchStyleState(). После этого карта начнёт запрашивать тайлы с иммерсивными данными. Подробнее о глобальных переменных см. в разделе Глобальные переменные стиля карты.
map.patchStyleState({ immersiveRoadsOn: true });
Чтобы отключить режим, установите для глобальной переменной immersiveRoadsOn значение false. После этого тайлы с иммерсивными данными не будут запрашиваться.
map.patchStyleState({ immersiveRoadsOn: false });
Настройка стилевых слоёв
Отображаемые объекты дорожной инфраструктуры можно настраивать в Редакторе стилей. Чтобы включить режим иммерсивности в Редакторе стилей, в разделе Настройки включите Иммерсивные дороги:
Подробнее о слоях для MapGL JS API см. в спецификации стиля и в документации Редактора стилей. О создании стиля на основе базового см. в разделе Создание стилей и настройка стилевых слоёв.
Среди общих настроек важен режим отображения неиммерсивных слоёв в зависимости от наличия у объекта атрибута db_has_immersive_counterpart. Этот атрибут указывает на наличие иммерсивного двойника — альтернативного иммерсивного представления того же объекта дорожной инфраструктуры вместо обычного объекта плоского слоя.
Например, слой Bike road в базовом стиле использует следующее значение параметра Настройки отображения слоя на вкладке Отображение:
[
"match",
["get", "db_has_immersive_counterpart"],
[1],
false,
true
]
Это означает:
- если у объекта есть иммерсивный двойник, неиммерсивный слой не отрисовывается;
- если иммерсивного двойника нет, объект отрисовывается плоско, с игнорированием уровней.
Модели опор
В иммерсивном режиме опоры мостов и дорожных полотен представлены трёхмерными моделями в формате glTF/GLB.
Параметр Размер (Scale) опор не является константой и задаётся выражением:
[
"literal",
[
1,
1,
["+",
["*",
["get", "db_nominal_height"],
["*", ["get", "db_level"], 5]
],
-0.3
]
]
]
Такое выражение согласует модель опоры с геометрией развязки: по вертикальной оси используется номинальная высота, умножается на 5 (высота пролёта для России) и на текущий уровень, затем вычитается 0.3, чтобы опора визуально не пересекалась с развязкой.
Более подробную информацию об использовании 3D-моделей на карте см. в разделе 3D-модели.
Дорожные полотна и площадная разметка
Дорожное полотно и площадная разметка (например, «вафельная» разметка 1.26) отрисовываются слоем Полигон. Для него можно настроить:
-
текстуру:
Подробнее см. в разделе Заливка полигона текстурой.
-
цвет и обводку:
Точечная разметка
Точечная разметка отображается с помощью слоя Плоское изображение. Этот тип слоя подходит для стрелок направления, пешеходных переходов и других точечных элементов дорожной разметки.
Для настройки точечной разметки в Редакторе стилей можно задать:
- иконку,
- цвет иконки и её прозрачность,
- угол поворота иконки,
- размер иконки.
Угол поворота задаётся get-выражением, поэтому для каждого объекта он может быть своим.
Линейная разметка
Линейная разметка отрисовывается слоем Линия. Этот тип слоя используется для разделительных полос, краевых линий и других линейных элементов дорожной разметки.
Для настройки линейной разметки в Редакторе стилей можно задать:
- цвет линии и прозрачность,
- ширину линии,
- тип паттерна.
Развязки и туннели
Развязки и туннели отрисовываются на карте с помощью слоя Транспортная развязка. Этот слой можно редактировать при работе с готовым шаблоном в Редакторе стилей.
У развязок и туннелей общие параметры, кроме параметров:
- Толщина — используется только для развязки;
- Высота туннеля — используется только для туннеля.
Схема параметров развязки:

Схема параметров туннеля:
