我正在使用OpenLayers v3.6(这很重要,因为我发现并且可能有效的大多数解决方案都适用于OpenLayers 2).
我有一个表,当我在该表中选择一行时,我想在OpenLayers地图上突出显示/选择相应的功能.所有要素都是同一矢量图层中的简单多边形(ol.geom.Polygon)(ol.layer.Vector).
我设置了这样的选择交互:
// there is a lot of other code here
...
addSelectListener: function() {
this.SelectInteraction = new ol.interaction.Select({
condition: ol.events.condition.singleClick,
layers: function (layer) {
// defines layer from which features are selectable
return layer.get('id') == 'polygons_layer';
},
style: this.Style.Selected
});
// Map = ol.Map
Map.addInteraction(this.SelectInteraction);
this.SelectInteraction.on('select', this.selectPolygon, this);
}
...
selectPolygon: function(event) {
var selectSrc = this.getSelectInfo(event);
// some code that relies on selectSrc data
}
...
getSelectInfo: function (event) …Run Code Online (Sandbox Code Playgroud)