// export default interface IScene import { ILayer } from "@antv/l7"; import { BBox, Feature, FeatureCollection } from "@turf/turf"; import EventEmitter from "eventemitter3"; import { Style } from "../styles"; export type IHPaaSLayerType = "LineString" | "Polygon" | "Point" | "Text"; export type IHPaaSMouseEventKeys = "mousemove" | "click" | "contextmenu" | "dbclick"; export type IHPaaSMapEventKeys = "zoomend" | "moveend"; export interface MouseHandler { lnglat: { lng: number; lat: number; }; feature?: Feature; layer?: any; } export interface MapHandler { zoom: number; center: { lng: number; lat: number; }; } export interface IHPaaSEventsMap { mousemove: (e: MouseHandler) => void; click: (e: MouseHandler) => void; contextmenu: (e: MouseHandler) => void; dbclick: (e: MouseHandler) => void; zoomend: (e: MapHandler) => void; moveend: (e: MapHandler) => void; } export type IHPaaSLayerEventKeys = "click" | "dbclick" | "mousemove"; export type IHPaaSL7LayerGroup = ILayer[]; export type IHPaaSLayer = IHPaaSL7LayerGroup | any; export interface IHPaaSLayerOptions { zIndex: number; [key: string]: any; } export default interface IHPaaSScene { createLayer: (type: IHPaaSLayerType, style: Style, options?: IHPaaSLayerOptions) => IHPaaSLayer; addLayer: (layer: IHPaaSLayer) => void; setData: (layer: IHPaaSLayer, data: FeatureCollection) => void; removeLayer: (layer: IHPaaSLayer) => void; sceneEvent: EventEmitter; layerEvent: { on: (layer: IHPaaSLayer, eventKey: IHPaaSLayerEventKeys, handler: (e: MouseHandler) => void) => void; off: (layer: IHPaaSLayer, eventKey: IHPaaSLayerEventKeys, handler: (e: MouseHandler) => void) => void; }; fitBounds: (b: BBox, animate?: boolean) => void; popup: { html: (html: string) => void; pos: (pos: { lng: number; lat: number }) => void; show: (html?: string, pos?: { lng: number; lat: number }) => void; hide: () => void; }; }