限制指针移动到openlayers3中的两个层的交互

时间:2015-06-25 05:56:35

标签: javascript-events openlayers-3

在openlayers v3.6版中以unbunt

运行chrome

我使用语法

在其中创建了一个带有severlayers(foo,bar,beltch)的地图
layers:[foo,bar,beltch],

我想限制图层foo和bar的交互 http://openlayers.org/en/master/apidoc/ol.interaction.Select.html处的api文件 建议使用以下语法

var selectPointerMove = new ol.interaction.Select({
    condition: ol.events.condition.pointerMove,
    layers:[foo,bar]
 });

但是我似乎得到了所有图层的事件,我已经检查过这些示例,除非我忽视了某些内容,否则似乎没有任何内容覆盖这个区域。

有人有任何建议

1 个答案:

答案 0 :(得分:3)

使用filter代替layers。并确保您设置一个图层属性以便稍后进行比较。

var layerFeatures = new ol.layer.Vector({
    name: 'selectable',
    source: sourceFeatures
});

var hoverInteraction = new ol.interaction.Select({
    condition: ol.events.condition.pointerMove,
    filter: function(feature, layer){
        if(layer.get('name') === 'selectable')
            return true;
    }
});