Suite

Comment désélectionner une fonctionnalité qui est sélectionnée avec selectInteraction d'OpenLayers-3.8.2 ?


J'utilise OpenLayers-3.8.2. Je veux sélectionner une fonctionnalité, puis la supprimer. mon code est le suivant :

deleteFeature = function(event){ var feature = event.selected[0]; myLayer.getSource().removeFeature(feature); } selectInteraction = new ol.interaction.Select({ condition : ol.events.condition.singleClick, toggleCondition : ol.events.condition.shiftKeyOnly, couches : [myLayer] }) map.addInteraction(selectInteraction); selectInteraction.on("select", deleteFeature, this);

Ce code supprime la fonctionnalité de la source mais elle est toujours affichée sur la carte.

Comment puis-je désélectionner une fonctionnalité? Ou comment puis-je redessiner un calque? Ou comment puis-je supprimer une fonctionnalité dans openlayers-3 ?


Vous pouvez utiliserdégagerune fonction. ChangersupprimerFonctionnalitéfonctionnent comme suit :

deleteFeature = function(event){ var feature = event.selected[0]; myLayer.getSource().removeFeature(feature); event.selected.clear(); }

Sur ol3 3.11.2, leevent.selected.clear();n'existe pas, vous devez donc utiliser leselectionInteraction.getFeatures().clear();


Dans les couches ouvertes 5.2, vous pouvez désélectionner une fonctionnalité comme celle-ci :

deleteFeature = function (événement) { var feature = event.selected[0]; myLayer.getSource().removeFeature(feature); selectInteraction.getFeatures().remove(feature); }


Voir la vidéo: Style Web Map Vector Layers with OpenLayers (Octobre 2021).