/// import type { IMapConfig, IMapWrapper, ISceneConfig, Scene } from '@antv/l7'; import type { CommonProps } from '../../types/common'; import type { LayerManager } from '../../utils'; export type LarkMapContextValue = { scene: Scene; layerManager: LayerManager; }; export type LarkMapRefAttributes = { /** 获取 Scene 实例 */ getScene: () => Scene; /** 获取 Map 实例 */ getMap: () => Scene['map']; }; /** * 场景事件回调 */ export type SceneEventCallback = (e?: any) => void; /** * 场景事件 */ export type SceneEventProps = Partial<{ onLoaded: SceneEventCallback; onDestroy: SceneEventCallback; onResize: SceneEventCallback; onMapMove: SceneEventCallback; onMoveStart: SceneEventCallback; onMoveEnd: SceneEventCallback; onZoomChange: SceneEventCallback; onZoomStart: SceneEventCallback; onZoomEnd: SceneEventCallback; onClick: SceneEventCallback; onDblclick: SceneEventCallback; onContextMenu: SceneEventCallback; onMouseMove: SceneEventCallback; onMouseWheel: SceneEventCallback; onMouseDown: SceneEventCallback; onMouseOver: SceneEventCallback; onMouseOut: SceneEventCallback; onMouseUp: SceneEventCallback; onDragStart: SceneEventCallback; onDragging: SceneEventCallback; onDragEnd: SceneEventCallback; }>; /** * 组件类型定义 */ export interface LarkMapProps extends CommonProps, Omit, SceneEventProps { /** 容器 id */ id?: string; /** 地图实例,可选,也可以通过配置项自动生成实例 */ map?: IMapWrapper | (() => Promise); /** * 地图类型 * @default 'Gaode' */ mapType?: 'Gaode' | 'GaodeV1' | 'GaodeV2' | 'Mapbox' | 'Map' | 'Tencent' | 'Baidu'; /** * 地图配置项 * 配合地图类型配置地图, * 配置项详见 [L7-Map](https://l7.antv.antgroup.com/api/map) * @default {} * */ mapOptions?: Partial; /** 场景加载成功回调 */ onSceneLoaded?: (scene: Scene) => void; /** 图层管理器创建成功 */ onLayerManagerCreated?: (layerManager: LayerManager) => void; children?: React.ReactNode; }