Дополнение текущего стиля карты «на лету»
Чтобы изменить текущий стиль, экземпляр карты имеет два метода: 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');