使用openlayer 3.3.0,我们有一个分为县的地图,每个县都是一个“特征”,我想选择一个特征并改变它的边框颜色,当我选择另一个特征时,我希望之前选择的特征恢复到其原始样式和应用所选样式的新功能。
所以我用它来添加交互。
var select = new ol.interaction.Select({
condition: ol.events.condition.click,
});
select.on('select', function(evt){
var features = evt.target.getFeatures();
features.forEach(function(feature){
feature.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#007aa9',
width: 1.5;
}))
}
})
map.addInteraction(select);
这一切都很好,但它不会“取消选择”以前选择的功能,所以如果我点击所有功能,就会得到选择样式
我似乎可以解决这个问题的唯一方法是,设置一个“previouslySelectedFeature”变量,并在“on”事件中重置它的样式,虽然它看起来有点笨拙,不应该有一种方法来检测一个特性什么时候有被“取消选择”并重置其样式?