Как я могу отменить выбор функции в Openlayers?


9

Я могу определить выбранные объекты на карте, используя следующую строку:

vector_layer.selectedFeatures

Я хотел бы иметь возможность отменить выбор этой функции с помощью автономной функции (не обработчик событий). Я попытался использовать функции unselect()и unselectAll()безуспешно и не могу найти примеры такого подхода.

Я знаю, что щелкнув по выбранному объекту, можно привыкнуть unselect. В этом случае я хочу программное решение.


Это не совсем то, что я пытаюсь сделать, но unSelectвопросы обсуждаются здесь: github.com/openlayers/openlayers/pull/486
djq

спасибо за предложения. Я видел это и пытался адаптировать их для моего слоя сетки. Насколько я могу судить, каждый пример выбора функций в первую очередь связан с их созданием. Я (пока) не видел работающего примера, где загружается существующий слой, и пользователь выбирает объекты из этого слоя. Я начинаю думать, что selectFeature работает только для векторов, которые вы создаете на лету. Я надеюсь, что это не так, иначе у меня проблемы. ;)
user2378729

Ответы:


13

OpenLayers 2: Вы можете отменить выбор объектов с помощью методов unselect и unselectAll элемента управления 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();

Если это не работает, возможно, в вашем коде есть ошибка.

Вот скрипка: http://jsfiddle.net/dHxnh/1/


Я не вижу этого в документации ... но это работает!
Пакман

1

Openlayers отмена выбора объектов - различные методы

Используйте клавишу Shift, чтобы выбрать несколько функций. Используйте клавишу ctrl для переключения выбора по объектам по одному. Примечание: опция «clickout» не действует при выборе «hover»

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

нажмите, чтобы отменить выбор функций


1
Извините, надо было добавить слово «программный». Я хочу unselectиспользовать функцию, а не клик.
djq
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.