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

9

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

vector_layer.selectedFeatures

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

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

djq
источник
Это не совсем то, что я пытаюсь сделать, но 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/

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

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

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

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

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

Mapperz
источник
1
Извините, надо было добавить слово «программный». Я хочу unselectиспользовать функцию, а не клик.
djq