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);
网友评论