openlayers点击事件

1. 事件监听 -- feature

// 为地图注册鼠标单击事件的监听

map.on('singleclick', event => {

    map.forEachFeatureAtPixel(event.pixel, feature => {

    // 为移动到的feature发送自定义的singleclick消息

        feature.dispatchEvent({type:'singleclick', event: event});

    });

});

// 为某个feature注册事件监听

feature1.on('singleclick', event => {

    console.log(event);

})

上面的事件类型换成dbclick,mousemove等同理

2. select -- layer

// 创建图层的动作

let selectClick =new ol.interaction.Select({

    condition :ol.events.condition.singleClick,

    style : areaStyles,

    filter: (feature, layer) => {

        return layer === myLayer // 需要添加事件的layer

    }

});

// 地图实例中加入事件

selectClick.on('select', event => {

    console.log(event);

    if (event.selected[0] == null ) return;

    // 在使用ol.interaction.Select进行点击时,默认会把点击选中的要素显示在地图上

    // 可以用以下方法解决

    selectClick.getFeatures().clear();  

});

map.addInteraction(selectClick);

你可能感兴趣的:(openlayers点击事件)