Я пытаюсь реализовать однослойный в mapbox-GL, который показывает значки, которые меняются при нажатии.До сих пор я пытался сделать следующее:
Использовать свойство (после предварительной загрузки изображений как активных и неактивных):
'icon-image': ["case",["boolean", ["feature-state", "clicked"], false],
"inactive",
"active"
],
И различные версии map.updateImage () длядинамически изменять изображение, отображаемое для каждой точки:
map.updateImage(`point1`, map.loadImage('/img/pin_active.png'))
map.updateImage(`point1`, 'active')) //with the image being loaded beforehand as 'active'
map.updateImage(`point1`, map.loadImage('/img/pin_active.png', function(error, image) {
if (error) throw error;
map.addImage(point1, image);
}))
Единственное решение, которое работает, - это использование SDF ( mapbox gl, изменить цвет значка ) - но это не работает для моегозначки, которые являются многоцветными (и они становятся довольно уродливыми, так как формат SDF, кажется, плохо масштабируется).
Есть идеи, как к этому подойти?