В большинстве случаев предпочтительным решением будет стилизация объектов с использованием слоя и стилей взаимодействия.Если для каждого объекта достаточно одного стиля или массива стилей, просто укажите следующее:
let vectorLayer = new VectorLayer({
source: mySource,
style: deselectedStyle
});
let selectClick = new Select({
condition: click,
style: selectedStyle
});
Если стиль может отличаться в зависимости от свойств объекта, используйте функцию стиля для возврата соответствующего стиля:
let vectorLayer = new VectorLayer({
source: mySource,
style: function(feature) {
... // choose appropriate deselected style for this feature
return chosenStyle;
}
});
let selectClick = new Select({
condition: click,
style: function(feature) {
... // choose appropriate selected style for this feature
return chosenStyle;
}
});
Если предпочитается стилизация отдельных элементов, стили должны быть установлены и сброшены при выборе и отмене выбора:
selectClick.on('select', function(e) {
e.selected.forEach(function(feature) { feature.setStyle(selectedStyle); });
e.deselected.forEach(function(feature) { feature.setStyle(deselectedStyle); });
});