Я пытаюсь изменить цвет маркера, представляющего собой круг, который рисуется с использованием свойства рисования на слое.
После этого урока:
https://docs.mapbox.com/mapbox-gl-js/example/hover-styles/
Я установил circle-color
в зависимости от feature-state
:
map.addLayer({
id: "singles",
type: "circle",
source: "users",
filter: ["!has", "point_count"],
paint: {
'circle-radius': {
'base': 10,
'stops': [[5, 20], [15, 500]]
},
'circle-color': ["case",
["boolean", ["feature-state", "hover"], false],
'#ddffc8',
'#ff0000'
],
}
});
Затем, когда кто-то наводит курсор на боковую панель, я хочу обновить состояние объекта и изменить цвет:
function highlightMarkersOnHoverOnSidebar (markers, map) {
let marks = markers
Array.from(document.querySelectorAll('.sideBarItems')).map( (x, i) => {
x.addEventListener('mouseenter', function(){
map.setFeatureState({source: 'users', id: marks.features[i].properties.id}, { hover: true});
}, false)
x.addEventListener('mouseleave', function(){
map.setFeatureState({source: 'users', id: marks.features[i].properties.id}, { hover: false});
}, false)
})
}
Однако ничего не происходит, когда я наводю элемент боковой панели ... и он даже не выдает ошибку.
Чего-то мне не хватает?спасибо.