6

http://ol3js.org/en/master/examples/select-features.html

鉴于上述示例,选择功能时有哪些扩展点可以挂钩?

4

3 回答 3

9

这是一个可能比 Danny 更直观的解决方案,而且似乎也是“官方”方式,请参阅ol3 的 GitHub 上的这个问题

只需将侦听器添加到所选功能的集合中:

    mySelectInteraction.getFeatures().on('change:length', function(e) {
        if (e.target.getArray().length === 0) {
            alert("no selected feature");
        } else {
            var feature = e.target.item(0);
            alert(feature.getId()); //or do something better with the feature !
        }
    });
于 2014-09-24T15:36:25.390 回答
2

当在地图上触发单击事件时,您可以将预合成事件绑定到图层。从这里你可以在你的选择交互上发送一个更改事件。

yourmap.on('singleclick',function(event)){
    layer.once('precompose',function(event){
        yourSelectInteraction.dispatchChangeEvent();
    }
}

yourSelectInteraction.on('change',function(){
    //Do stuff with your selected features here
}
于 2014-06-08T21:28:47.603 回答
0

您想使用featureselected事件处理程序:

此示例位于矢量图层上:

featuresLayer.events.on({
    'featureselected': function (e) {
        console.log(e);
    }
});
于 2014-05-07T22:46:56.670 回答