我使用here中接受的答案以编程方式在我的地图上选择一项功能。
一切都好,除了我没有应用我的自定义选择样式(该元素看起来和以前一样)。
我正在使用此代码设置我的Select
互动:
var selectSingleOrDoubleClick = new ol.interaction.Select({
style: this.selectCustomStyle,
condition: function(mapBrowserEvent) {
return ol.events.condition.singleClick(mapBrowserEvent) || ol.events.condition.doubleClick(mapBrowserEvent);
},
filter: function(feature, layer) {
...
}
});
我这样做是为了以编程方式选择我的功能:
selectSingleOrDoubleClick.getFeatures().clear();
selectSingleOrDoubleClick.getFeatures().push(featureToSelect);
selectControl.dispatchEvent({
type: 'select',
selected: [featureToSelect],
deselected: []
});
我不应该选择我的功能considered
(例如,如果我通过用户互动选择其他功能,我之前选择的功能将被取消选择,等等。
答案 0 :(得分:0)
显然,这是Openlayers中的正常行为,只要您选择的功能已经应用了非默认样式。
因此,如果您想解决此问题,则需要使用select/unselect
事件来应用您需要应用的任何样式,并根据需要将其删除。