Jak mogę odznaczyć funkcję w Openlayers?


9

Jestem w stanie zidentyfikować wybrane obiekty na mojej mapie za pomocą następującego wiersza:

vector_layer.selectedFeatures

Chciałbym móc odznaczyć tę funkcję za pomocą autonomicznej funkcji (nie obsługi zdarzeń). Próbowałem użyć funkcji unselect()i unselectAll()bezskutecznie i nie mogę znaleźć żadnych przykładów tego podejścia.

Zdaję sobie sprawę, że kliknięcie wybranego obiektu można wykorzystać unselect. W tym przypadku chcę programowego rozwiązania.


To nie do końca to, co próbuję zrobić, ale unSelectproblemy są omawiane tutaj: github.com/openlayers/openlayers/pull/486
djq

dzięki za sugestie. Widziałem je i próbowałem dostosować do mojej warstwy siatki. O ile wiem, każdy przykład wyboru funkcji wiązał się z jej pierwszym utworzeniem. Nie widziałem (jeszcze) działającego przykładu, w którym ładowana jest istniejąca warstwa, a użytkownik wybiera funkcje z tej warstwy. Zaczynam myśleć, że selectFeature działa tylko dla wektorów, które tworzysz w locie. Mam nadzieję, że to nieprawda, bo inaczej mam kłopoty. ;)
user2378729

Odpowiedzi:


13

OpenLayers 2: Możesz odznaczyć funkcje za pomocą unselect i unselect Wszystkie metody sterowania 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();

Jeśli to nie zadziała, prawdopodobnie w twoim kodzie jest błąd.

Oto skrzypce: http://jsfiddle.net/dHxnh/1/


Nie widzę tego w dokumentacji ... ale działa!
pakman

1

Openlayery odznaczające obiekty - różne metody

Użyj klawisza Shift, aby wybrać wiele funkcji. Użyj klawisza Ctrl, aby przełączać zaznaczenie funkcji pojedynczo. Uwaga: opcja „kliknięcia” nie działa, gdy wybrane jest „najechanie kursorem”

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

kliknij, aby odznaczyć funkcje


1
Przepraszamy, powinienem dodać słowo programmatic. Chcę unselectużyć funkcji, a nie kliknięcia.
djq
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.