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

Дополнение текущего стиля карты «на лету»

Чтобы изменить текущий стиль, экземпляр карты имеет два метода: addLayer и removeLayer.

Добавление нового слоя в стиль карты

После создания карты ее стиль будет пустым до тех пор, пока он не будет загружен с сервера. Важно добавлять новые слои только после загрузки стиля, поскольку загруженный стиль полностью перезапишет старый. Для этого в приведенном выше примере используется событие styleload, которое генерируется каждый раз после установки нового стиля:

map.on('styleload', () => {
map.addLayer(layer);
});

Если вы измените стиль карты с помощью метода map.setStyleById(), вы также можете использовать Promise, возвращаемый этим методом:

map.setStyleById('e05ac437-fcc2-4845-ad74-b1de9ce07555').then(() => {
map.addLayer(layer);
});

Добавление перед другим слоем

Слои стиля карты упорядочены относительно друг друга. Порядок слоев определяет последовательность их отрисовки на карте.

По умолчанию метод map.addLayer(layer) добавляет новый слой в конец списка, т.е. новый слой будет отрисован последним. Если вам нужно добавить слой не в конец, а перед другим слоем, укажите ID другого слоя в качестве второго аргумента:

map.addLayer(anotherLayer, 'my-polygons-layer');

Вы также можете добавить слой перед слоями, настроенными в Редакторе стилей:

map.addLayer(layer, '577315');