是否有在OpenLayers 3中选择功能的事件?

时间:2014-05-03 23:10:16

标签: javascript openlayers-3

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

鉴于上面的例子,当选择特征时,有哪些扩展点可以挂钩?

3 个答案:

答案 0 :(得分:9)

这个解决方案可能比Danny更直观,而且似乎也是“官方”方式,请参阅this issue on ol3's 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 !
        }
    });

答案 1 :(得分:2)

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

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

yourSelectInteraction.on('change',function(){
    //Do stuff with your selected features here
}

答案 2 :(得分:0)

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

此示例位于Vector图层上:

featuresLayer.events.on({
    'featureselected': function (e) {
        console.log(e);
    }
});