import EventEmitter from 'eventemitter3'; import type { L7Container } from '../../inversify.config'; import type { IInteractionService } from './IInteractionService'; /** * 由于目前 L7 与地图结合的方案为双 canvas 而非共享 WebGL Context,事件监听注册在地图底图上。 * 除此之外,后续如果支持非地图场景,事件监听就需要注册在 L7 canvas 上。 */ export default class InteractionService extends EventEmitter implements IInteractionService { private readonly container; indragging: boolean; get mapService(): import("../map/IMapService").IMapService<{}>; constructor(container: L7Container); private hammertime; private lastClickTime; private lastClickXY; private clickTimer; private $containter; init(): void; destroy(): void; triggerHover({ x, y }: { x: number; y: number; }): void; triggerSelect(id: number): void; triggerActive(id: number): void; private addEventListenerOnMap; private removeEventListenerOnMap; private onDrag; private onHammer; private onTouch; private onTouchEnd; private onTouchMove; private interactionEvent; private onHover; private isDoubleTap; }