Начало работы
Плагин deck2gisLayer позволяет отрисовывать слои deck.gl на карте MapGL JS API.
Чтобы добавить слой deck.gl:
- Подключите плагин
deck2gisLayerи фреймворкdeck.glк своему проекту. - Инициализируйте deck.gl.
- Создайте слой.
- Добавьте слой на карту.
Чтобы работать с несколькими слоями на карте одновременно, см. инструкцию Работа с несколькими слоями.
1. Подключите плагин
При помощи тега script
После подключения карты добавьте следующие строки в код HTML-страницы:
<script src="https://unpkg.com/@2gis/deck2gis-layer@^2/dist/deck2gislayer.js"></script>
<script src="https://unpkg.com/deck.gl@^8/dist.min.js"></script>
При помощи npm
Если вы используете npm, подключите библиотеку с помощью пакета @2gis/deck2gis-layer:
npm install @2gis/deck2gis-layer @deck.gl/core @deck.gl/layers
Совместимость версий
Текущая версия плагина
deck2gisLayerсовместима только с версиейdeck.gl@^8.
2. Инициализируйте deck.gl
Чтобы создать экземпляр deck.gl, инициализируйте его с помощью функции initDeck(), которая связывает его с картой:
import { Deck } from '@deck.gl/core';
import { Deck2gisLayer, initDeck } from '@2gis/deck2gis-layer';
const deck = initDeck(map, Deck, { antialiasing: 'msaa' });
3. Создайте слой
Чтобы создать слой deck.gl, используйте Deck2gisLayer.
Например, вы можете создать слой HexagonLayer, который визуализирует данные в виде тепловой карты, состоящей из гексагонов. Цвет и высота гексагона зависят от объектов, которые он содержит.
Пример создания слоя HexagonLayer:
import { HexagonLayer } from '@deck.gl/aggregation-layers/typed';
const data = [
{
point: {
lon: 37.615655,
lat: 55.768005,
},
},
];
const deckHexagonLayer = new Deck2gisLayer({
id: 'deckgl-HexagonLayer',
deck,
type: HexagonLayer,
data,
radius: 250,
getPosition: (d) => [d.point.lon, d.point.lat],
});
Где:
point— координаты точек с данными.id— идентификатор слоя. Должен быть уникальным в рамках всех слоёв стиля карты.deck— экземпляр Deck, который управляет визуализацией слоя.type— тип слоя (Layer) из deck.gl.radius— радиус гексагона в метрах.getPosition— метод для вычисления координат объектов.
Более подробную информацию о параметрах см. в документации deck.gl к каждому слою.
4. Добавьте слой
Перед добавлением слоя на карту стиль карты должен быть загружен, иначе он перезапишет предыдущий стиль и удалит добавленные слои. Используйте обработчик события styleload, который срабатывает каждый раз после установки нового стиля:
map.on('styleload', () => {
map.addLayer(deckHexagonLayer);
});
Подробнее см. в инструкции Дополнение текущего стиля карты «на лету».