I am trying to upgrade my system from Openlayers 2 to Openlayers 3 and I have having one particular issue that I cannot seem to figure out.
My application has a grid and a map and when a user clicks on the grid I want to select the relevant point on the map.
In Openlayers 2 I used the following:
self.selectControl.select(feature[0]);
I cannot find or understand how to do the same in Openlayers 3.
So to be clear, I have a feature which I have found programmatically and I want to select that feature on a map (programmatically)!
I cannot seem to find anything in the APIs but that might be due to my lack of understanding as I am new to Openlayers.
To do this you need to do the following:
mySelectControl.getFeatures().clear() -> removes the selected items
mySelectControl.getFeatures().push(featureToSelect) -> selects the applied feature
var selectInteraction = new ol.interaction.Select(});
map.addInteraction(selectInteraction);
function highlightFeature(feat){
selectInteraction.getFeatures().push(feat);
selectInteraction.dispatchEvent({
type: 'select',
selected: [feat],
deselected: []
});
}
works like a char on latest openlayers 4.5
Add a select interaction to your map.
var selectInteraction = new ol.interaction.Select();
map.addInteraction(selectInteraction);
Add any features you want to select to the select interaction's feature array.
selectInteractions.getFeatures().push(featureToSelect);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With