Source: addEvent.js

import { click, pointerMove } from 'ol/events/condition.js';
import Select from 'ol/interaction/Select.js';

/**
 * 添加地图事件
 * @param {Map} map Map实例对象
 * @param {singleclick | click | pointmove} type 事件类型
 * @param {function} fn 回调函数
 */
const addEvent = (map, type, fn) => {
    let _type = type;
    let select = null,
        selectSingleClick = new Select(),
        selectClick = new Select({
            condition: click
        }),
        selectPointerMove = new Select({
            condition: pointerMove
        })
    
    switch (_type) {
        case 'singleclick':
            select = selectSingleClick;
            break;
        
        case 'click':
            select = selectClick;
            break;

        case 'pointermove':
            select = selectPointerMove;
            break;
    
        default:
            break;
    }

    if(select !== null) {
        map.removeInteraction(select);
    }

	select.on('select', fn);
	map.addInteraction(select);
};

export default addEvent;