如何取消选择Openlayers中的功能?


9

我可以使用以下几行来识别地图上的选定要素:

vector_layer.selectedFeatures

我希望能够使用独立功能(而不是事件处理程序)取消选择此功能。我尝试使用函数unselect()unselectAll()但未成功,找不到此方法的任何示例。

我知道单击所选对象可以用来unselect。在这种情况下,我需要一个编程解决方案。


这不是我要尝试做的事情,但是unSelect这里讨论了问题:github.com/openlayers/openlayers/pull/486
djq 2012年

感谢您的建议。我已经看过这些,并尝试将它们调整为适合我的网格层。据我所知,选择功能的每个示例都首先涉及创建功能。我(尚未)看到一个工作示例,在该示例中加载了现有图层,并且用户从该图层中选择要素。我开始认为selectFeature仅适用于您动态创建的向量。我希望这不是真的,否则我会遇到麻烦。;)
user2378729

Answers:


13

OpenLayers 2:您可以使用SelectFeature控件的unselect和unselectAll方法取消选择功能:

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/


我没有在文档中看到它,但是可以用!
pakman 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.