Como posso desmarcar um recurso no Openlayers?

9

Consigo identificar os recursos selecionados no meu mapa usando a seguinte linha:

vector_layer.selectedFeatures

Gostaria de poder desmarcar esse recurso usando uma função autônoma (não um manipulador de eventos). Eu tentei usar as funções unselect()e unselectAll()sem sucesso e não pode encontrar qualquer exemplos dessa abordagem.

Estou ciente de que é possível clicar no objeto selecionado unselect. Nesse caso, quero uma solução programática.

djq
fonte
Não é bem o que estou tentando fazer, mas unSelectquestões são discutidas aqui: github.com/openlayers/openlayers/pull/486
DJQ
obrigado pelas sugestões. Eu os vi e tentei adaptá-los para minha camada de grade. Tanto quanto posso dizer, todos os exemplos para selecionar recursos envolviam a criação dos recursos primeiro. Ainda não vi um exemplo de trabalho em que uma camada existente é carregada e o usuário seleciona recursos dessa camada. Estou começando a pensar que selectFeature funciona apenas para vetores que você cria em tempo real. Espero que isso não seja verdade, ou então estou com problemas. ;)
user2378729

Respostas:

13

OpenLayers 2: você pode desmarcar recursos com todos os métodos de controle 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 isso não funcionar, provavelmente há um erro no seu código.

Aqui está o violino: http://jsfiddle.net/dHxnh/1/

user1702401
fonte
Não vejo isso na documentação ... mas funciona!
Pakman
1

Openlayers desmarcando objetos - vários métodos

Use a tecla Shift para selecionar vários recursos. Use a tecla ctrl para alternar a seleção de recursos, um de cada vez. Nota: a opção "clickout" não tem efeito quando "pairar" é selecionado

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

clique para desmarcar recursos

Mapperz
fonte
11
Desculpe, deveria ter adicionado a palavra programático. Eu quero unselectusar uma função, não um clique.
DJQ