Comment désélectionner une fonctionnalité dans Openlayers?

9

Je peux identifier les entités sélectionnées sur ma carte à l'aide de la ligne suivante:

vector_layer.selectedFeatures

Je voudrais pouvoir désélectionner cette fonctionnalité en utilisant une fonction autonome (pas un gestionnaire d'événements). J'ai essayé d'utiliser les fonctions unselect()et unselectAll()sans succès et je ne trouve aucun exemple de cette approche.

Je suis conscient que cliquer sur l'objet sélectionné peut être utilisé pour unselect. Dans ce cas, je veux une solution programmatique.

djq
la source
Ce n'est pas tout à fait ce que j'essaie de faire, mais les unSelectproblèmes sont abordés ici: github.com/openlayers/openlayers/pull/486
djq
merci pour les suggestions. Je les ai vus et j'ai essayé de les adapter à ma couche de grille. Pour autant que je sache, chaque exemple de sélection de fonctionnalités impliquait la création des fonctionnalités en premier. Je n'ai pas (encore) vu d'exemple de travail où une couche existante est chargée et l'utilisateur sélectionne des fonctionnalités de cette couche. Je commence à penser que selectFeature ne fonctionne que pour les vecteurs que vous créez à la volée. J'espère que ce n'est pas vrai, sinon je suis en difficulté. ;)
user2378729

Réponses:

13

OpenLayers 2: vous pouvez désélectionner des entités avec les méthodes unselect et unselectAll du contrôle SelectFeature:

selectControl = new OpenLayers.Control.SelectFeature(vectorLayer);
...
map.addControls([selectControl]);
selectControl.activate();

// unselect any specific feature...
selectControl.unselect(vectorLayer.features[0]);
// ...or all features
selectControl.unselectAll();

Si cela ne fonctionne pas, il y a probablement un bug dans votre code.

Voici le violon: http://jsfiddle.net/dHxnh/1/

user1702401
la source
Je ne vois pas ça dans la documentation ... mais ça marche!
pakman
1

Openlayers désélectionnant des objets - différentes méthodes

Utilisez la touche Maj pour sélectionner plusieurs fonctions. Utilisez la touche ctrl pour basculer la sélection sur les entités une par une. Remarque: l'option "clickout" n'a aucun effet lorsque "hover" est sélectionné

http://openlayers.org/dev/examples/select-feature.html

cliquez pour désélectionner les fonctionnalités

Mapperz
la source
1
Désolé, aurait dû ajouter le mot programmatique. Je veux unselectutiliser une fonction, pas un clic.
djq