glTF-плагин версии 1
glTF-плагин является альтернативным способом показать glTF-модели на карте, в дополнение к основному, использующему редактор стилей и источник данных.
Использование плагина наиболее удобно в случаях, когда на карте нужно показать несколько моделей, не затрагивая при этом базовый картографический стиль.
С помощью плагина вы можете:
- загружать glTF-модели на карту;
- показывать и скрывать модели на карте;
- показывать POI с информацией при наведении на ту или иную модель;
- отображать этажные планы.
Важно
В первой версии плагина используется библиотека Three.js версии 0.150.1. Чтобы работать с моделями только силами движка MapGL, используйте вторую версию плагина.
Подключение плагина
Подключите плагин одним из следующих способов:
-
Подключение как внешнего скрипта
Чтобы воспользоваться плагином, подключите его к себе на страницу:
<script src="https://unpkg.com/@2gis/mapgl-gltf@^1/dist/bundle.js"></script>
Главный класс плагина будет доступен в пространстве имён
mapgl
:const plugin = new mapgl.GltfPlugin(map);
-
Установка через npm
npm install @2gis/mapgl-gltf@^1
Инициализация
По умолчанию плагин настроен таким образом, чтобы вы могли использовать его без дополнительных настроек. Чтобы инициализировать плагин, передайте существующий экземпляр карты в конструктор плагина:
const plugin = new GltfPlugin(map);
Дополнительные опции
Чтобы настроить дополнительные опции, передайте их вторым аргументом в конструктор плагина:
const plugin = new GltfPlugin(map, {
modelsLoadStrategy: 'waitAll',
dracoScriptsUrl: 'libs/draco/',
ambientLight: { color: '#ffffff', intencity: 2.5 },
});
Отображение сжатых моделей (dracoScriptsUrl
)
Чтобы отобразить glTF-модели, сжатые алгоритмом Draco, необходимо использовать декодер. Дополнительных настроек плагина по умолчанию не требуется.
Если вы установили плагин как npm-пакет, рекомендуется использовать декодеры, которые поставляются вместе с плагином, чтобы избежать запросов на сервер unpkg
. Чтобы начать использовать декодеры:
-
Скопируйте декодеры в свой проект.
Чтобы правильно настроить копирование файлов декодера в вашем проекте, обратитесь к документации используемого JavaScript-бандлера.
-
При инициализации плагина добавьте опцию
dracoScriptsUrl
. В этой опции укажите путь до директории с декодерами Draco, по которому они будут доступны вашим пользователям.Пример использования опции:
const plugin = new GltfPlugin(map, {
dracoScriptsUrl: 'libs/draco/',
});
После установки пакета плагина с помощью npm декодеры будут находиться в директории node_modules/@2gis/mapgl-gltf/dist/libs/draco
.
Дополнительные настройки освещения (ambientLight
)
Можно указать дополнительные настройки освещения, если нужно сделать модель темнее или светлее. В плагине используется модель амбиентного освещения, с помощью которой задается равномерное освещение со всех сторон модели:
const plugin = new GltfPlugin(map, {
ambientLight: { color: '#ffffff', intencity: 2.5 },
});
Параметры:
color
— цвет амбиентного освещения, по умолчанию белый (#ffffff
).intencity
— интенсивность освещения, по умолчанию1
.
Стратегия загрузки моделей (modelsLoadStrategy
)
Можно настроить стратегию загрузки моделей:
waitAll
— для ожидания загрузки всех моделей перед их отображением на карте.dontWaitAll
— модели будут появляться на карте по мере их загрузки.
Пример:
const plugin = new GltfPlugin(map, {
modelsLoadStrategy: 'waitAll',
});