Openlayers 4.11:以编程方式选择功能时未应用任何样式
Openlayers 4.11 : no style applied when programatically selecting a feature
我正在使用 接受的答案以编程方式 select 我地图上的一个地图项。
一切正常,只是没有应用我的自定义 select 样式(元素看起来和以前一样)。
我正在使用此代码来设置我的 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) {
...
}
});
我这样做是为了以编程方式 select 我的功能:
selectSingleOrDoubleClick.getFeatures().clear();
selectSingleOrDoubleClick.getFeatures().push(featureToSelect);
selectControl.dispatchEvent({
type: 'select',
selected: [featureToSelect],
deselected: []
});
我不应该说我的功能是 considered
selected(例如,如果我通过用户交互 select 另一个功能,我以前 selected 的功能变成未selected等
显然,这是 Openlayers 中的正常行为,只要您选择的功能已经应用了非默认样式。
所以如果你想解决这个问题,那么你需要使用 select/unselect
事件来应用你需要应用的任何样式,并根据需要删除它。
我正在使用
一切正常,只是没有应用我的自定义 select 样式(元素看起来和以前一样)。
我正在使用此代码来设置我的 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) {
...
}
});
我这样做是为了以编程方式 select 我的功能:
selectSingleOrDoubleClick.getFeatures().clear();
selectSingleOrDoubleClick.getFeatures().push(featureToSelect);
selectControl.dispatchEvent({
type: 'select',
selected: [featureToSelect],
deselected: []
});
我不应该说我的功能是 considered
selected(例如,如果我通过用户交互 select 另一个功能,我以前 selected 的功能变成未selected等
显然,这是 Openlayers 中的正常行为,只要您选择的功能已经应用了非默认样式。
所以如果你想解决这个问题,那么你需要使用 select/unselect
事件来应用你需要应用的任何样式,并根据需要删除它。