Suite

OpenLayers 3.5.0, effacer la fonctionnalité en surbrillance après avoir supprimé la fonctionnalité de la source

OpenLayers 3.5.0, effacer la fonctionnalité en surbrillance après avoir supprimé la fonctionnalité de la source


Je veux que l'utilisateur puisse supprimer la fonction en surbrillance. Cela fonctionne bien, mais l'entité n'est pas effacée tant que je ne déplace pas le pointeur en dehors de la géométrie de l'entité.

J'utilise la bibliothèque OL 3.5.0.

C'est le code :

var selectPointerMove_Highlight = new ol.interaction.Select({ condition : ol.events.condition.pointerMove }); map.addInteraction(selectPointerMove_Highlight); var selectClick_Delete = new ol.interaction.Select({ condition : ol.events.condition.click }); map.addInteraction(selectClick_Delete); selectClick_Delete.getFeatures().on('change:length', function(e) { var feature = e.target.item(0); vectorSource.removeFeature(feature); selectClick_Delete.getFeatures().clear(); selectPointerMove_Highlight. getFeatures().clear(); });

Voici un JSFiddle pour montrer le comportement. Je m'attendrais à ce que la surbrillance disparaisse après l'appel de la fonction clear.

http://jsfiddle.net/goldrydigital/5azhb1o3/

Éditer:

J'ai essayé un map.renderSync() pour forcer un nouveau rendu de la carte, mais cela n'a pas fonctionné.


Jetez un œil à ce violon.

J'ai apporté quelques modifications, en gros, je supprime l'interaction de surbrillance (sur removefeature) et la remets sur l'événement pointermove.


Voir la vidéo: OpenLayers Introduction for Beginners