Come posso deselezionare una funzione in Openlayers?


9

Sono in grado di identificare le funzionalità selezionate sulla mia mappa utilizzando la seguente riga:

vector_layer.selectedFeatures

Vorrei poter deselezionare questa funzione utilizzando una funzione autonoma (non un gestore di eventi). Ho provato con le funzioni unselect()e unselectAll()senza successo e non riesco a trovare alcun esempio di questo approccio.

Sono consapevole che è possibile fare clic sull'oggetto selezionato unselect. In questo caso voglio una soluzione programmatica.


Non è proprio quello che sto cercando di fare, ma i unSelectproblemi sono discussi qui: github.com/openlayers/openlayers/pull/486
djq

grazie per i suggerimenti. Ho visto questi e ho cercato di adattarli al mio livello di griglia. Per quanto ne so, ogni esempio di selezione delle funzionalità implicava prima di tutto la creazione delle funzionalità. Non ho (ancora) visto un esempio funzionante in cui viene caricato un layer esistente e l'utente seleziona le funzionalità da questo layer. Sto iniziando a pensare che selectFeature funzioni solo per i vettori creati al volo. Spero che ciò non sia vero, altrimenti sono nei guai. ;)
user2378729,

Risposte:


13

OpenLayers 2: è possibile deselezionare le funzionalità con deseleziona e deseleziona Tutti i metodi di controllo 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();

Se questo non funziona, probabilmente c'è un bug nel tuo codice.

Ecco il violino: http://jsfiddle.net/dHxnh/1/


Non lo vedo nella documentazione ... ma funziona!
Pakman,

1

Openlayers deselezionando gli oggetti - vari metodi

Utilizzare il tasto Maiusc per selezionare più funzioni. Utilizzare il tasto ctrl per attivare o disattivare la selezione delle funzioni una alla volta. Nota: l'opzione "clickout" non ha alcun effetto quando è selezionato "hover"

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

fai clic per deselezionare le funzionalità


1
Spiacenti, avrei dovuto aggiungere la parola programmatica. Voglio unselectusare una funzione, non un clic.
djq
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.