Wie kann ich die Auswahl einer Funktion in Openlayers aufheben?

9

Ich kann die ausgewählten Features auf meiner Karte anhand der folgenden Zeile identifizieren:

vector_layer.selectedFeatures

Ich möchte diese Funktion mithilfe einer eigenständigen Funktion (keine Ereignisbehandlungsroutine) deaktivieren können. Ich habe versucht, die Funktionen zu verwenden unselect()und unselectAll()erfolglos und kann keine Beispiele für diesen Ansatz finden.

Mir ist bewusst, dass das Klicken auf das ausgewählte Objekt verwendet werden kann unselect. In diesem Fall möchte ich eine programmatische Lösung.

djq
quelle
Es ist nicht ganz das, was ich versuche, aber unSelectProbleme werden hier besprochen: github.com/openlayers/openlayers/pull/486
djq
danke für die vorschläge. Ich habe diese gesehen und versucht, sie für meine Gitterebene anzupassen. Soweit ich das beurteilen kann, bestand jedes Beispiel für die Auswahl von Features darin, zuerst die Features zu erstellen. Ich habe (noch) kein Arbeitsbeispiel gesehen, bei dem eine vorhandene Ebene geladen wird und der Benutzer Features aus dieser Ebene auswählt. Ich fange an zu denken, dass selectFeature nur für Vektoren funktioniert, die Sie im laufenden Betrieb erstellen. Ich hoffe das stimmt nicht oder ich bin in Schwierigkeiten. ;)
user2378729

Antworten:

13

OpenLayers 2: Sie können die Auswahl von Features mit den Methoden unselect und unselectAll des SelectFeature-Steuerelements aufheben:

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();

Wenn dies nicht funktioniert, liegt wahrscheinlich ein Fehler in Ihrem Code vor.

Hier ist Geige: http://jsfiddle.net/dHxnh/1/

user1702401
quelle
Ich sehe das nicht in der Dokumentation ... aber es funktioniert!
Pakman
1

Openlayers, die Objekte nicht auswählen - verschiedene Methoden

Verwenden Sie die Umschalttaste, um mehrere Funktionen auszuwählen. Verwenden Sie die Strg-Taste, um die Auswahl der Features einzeln umzuschalten. Hinweis: Die Option "Clickout" hat keine Auswirkung, wenn "Hover" ausgewählt ist

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

Klicken Sie auf, um die Auswahl der Funktionen aufzuheben

Mapperz
quelle
1
Sorry, hätte das Wort programmatisch hinzufügen sollen. Ich möchte unselecteine Funktion verwenden, keinen Klick.
DJQ