Перейти к основному содержимому

Иммерсивные дороги

Иммерсивная дорожная инфраструктура отображает дороги как реалистичные трёхмерные объекты, а не как схематичные линии. Это повышает детализацию карты и создаёт эффект присутствия, особенно при использовании совместно с другими иммерсивными возможностями: 3D-рельефом, освещением и 3D-моделями.

Компоненты инфраструктуры

К объектам иммерсивной дорожной инфраструктуры относятся:

Начиная с определённого уровня масштабирования (в базовых стилях Редактора стилей — с уровня 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-выражением, поэтому для каждого объекта он может быть своим.

Линейная разметка

Линейная разметка отрисовывается слоем Линия. Этот тип слоя используется для разделительных полос, краевых линий и других линейных элементов дорожной разметки.

Для настройки линейной разметки в Редакторе стилей можно задать:

  • цвет линии и прозрачность,
  • ширину линии,
  • тип паттерна.
Линейная разметка

Развязки и туннели

Развязки и туннели отрисовываются на карте с помощью слоя Транспортная развязка. Этот слой можно редактировать при работе с готовым шаблоном в Редакторе стилей.

У развязок и туннелей общие параметры, кроме параметров:

  • Толщина — используется только для развязки;
  • Высота туннеля — используется только для туннеля.

Схема параметров развязки:

Схема развязки

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

Схема туннеля