import EventEmitter from '@antv/event-emitter'; import { Map as L7Map, Mapbox, Scale, Scene, Zoom } from '@antv/l7'; import { Legend } from '../../component/legend'; import { Tooltip } from '../../component/tooltip'; import type { AMapInstance, Bounds, IPlotLayer, LayerMenuControlOptions, LegendOptions, MapboxInstance, MapInstance, MapOptions, MapStatusOptions, ScaleControlOptions, UpdateMapConfig, ZoomControlOptions } from '../../types'; import { LayerGroup } from '../layer/layer-group'; export declare abstract class Map extends EventEmitter { /** * 默认的 options 配置项 */ static DefaultOptions: Partial; /** * 是否初始化成功 */ inited: boolean; /** * 是否场景加载完成 */ sceneLoaded: boolean; /** * 是否所有图层加载完成 */ layersLoaded: boolean; /** * 是否场景与所有图层加载完成 */ loaded: boolean; /** * map 的 schema 配置 */ options: O; /** * map 上一次的 schema 配置 */ protected lastOptions: O; /** * map 绘制的 dom */ container: HTMLDivElement; /** * scene 实例 */ scene: Scene; /** * 图层组 */ layerGroup: LayerGroup; /** * 主题配置 */ protected theme: Record; /** * zoom 放缩器 Control */ zoomControl: Zoom | undefined; /** * scale 比例尺 Control */ scaleControl: Scale | undefined; /** * layerMenu 图层列表 Control */ /** * legend 图例 Control */ legendControl: Legend | undefined; /** * tooltip 悬浮提示 */ tooltip: Tooltip | undefined; constructor(options: O); /** * 获取默认配置 */ protected getDefaultOptions(): Partial; /** * 创建 DOM 容器 */ protected createContainer(container: string | HTMLDivElement): HTMLDivElement; /** * 注册主题 */ protected createTheme(): any; /** * 创建 map 容器 */ protected createMap(): L7Map | import("@antv/l7-maps/es/amap-next").default | Mapbox; /** * 创建 scene 实例 */ protected createScene(): Scene; /** * 渲染 */ abstract render(): void; /** * 注册静态资源 */ protected registerResources(): void; /** * 更新: 更新配置且重新渲染 */ update(options: Partial): void; /** * 更新: 更新配置 */ updateOption(options: Partial): void; /** * 更新: 地图底图配置 */ updateMap(updateMapConfig: UpdateMapConfig): void; /** * 修改容器大小 */ changeSize(width: number, height: number): void; /** * 事件代理: 绑定事件 */ on(name: string, callback: (...args: any[]) => void, once?: boolean): this; /** * 事件代理: 绑定一次事件 */ once(name: string, callback: (...args: any[]) => void): this; /** * 事件代理: 解绑事件 */ off(name: string, callback: (...args: any[]) => void): this; /** * 事件代理: 事件处理 */ private proxyEventHander; /** * 获取 scene 实例 */ getScene(): Scene; /** * 获取 map 实例 */ getMap(): MapboxInstance | AMapInstance | MapInstance | unknown; /** * 添加图层 */ addLayer(layer: IPlotLayer): void; /** * 获取所有图层 * @deprecate */ getLayes(): IPlotLayer[]; /** * 获取所有图层 */ getLayers(): IPlotLayer[]; /** * 根据图层名称获取图层 */ getLayerByName(name: string): IPlotLayer | undefined; /** * 移除图层 */ removeLayer(layer: IPlotLayer): boolean; /** * 移除内置所有的图层 */ removeAllLayer(): void; /** * 地图放大一级 */ zoomIn(): void; /** * 地图缩小一级 */ zoomOut(): void; /** * 设置地图倾角 */ setPitch(pitch: number): void; /** * 设置地图缩放范围 */ fitBounds(bound: Bounds): void; /** * 设置地图状态 * 可用来关闭地图的一些交互操作 */ setMapStatus(status: Partial): void; /** * 设置场景的背景色 */ setBgColor(color: string): void; /** * 初始化组件 */ protected initComponents(): void; /** * 更新化组件 */ protected updateComponents(): void; /** * 初始化控件 */ protected initControls(): void; /** * 更新控件 */ protected updateControls(): void; /** * 添加 zoom 控件 */ addZoomControl(options: ZoomControlOptions): void; /** * 更新 zoom 控件 */ updateZoomControl(options: ZoomControlOptions): void; /** * 移除 zoom 控件 */ removeZoomControl(): void; /** * 添加 scale 控件 */ addScaleControl(options: ScaleControlOptions): void; /** * 更新 scale 控件 */ updateScaleControl(options: ScaleControlOptions): void; /** * 移除 scale 控件 */ removeScaleControl(): void; /** * 添加 layerMenu 控件 */ addLayerMenuControl(options: LayerMenuControlOptions): void; /** * 更新 layerMenu 控件 */ updateLayerMenuControl(options: LayerMenuControlOptions): void; /** * 移除 layerMenu 控件 */ removeLayerMenuControl(): void; /** * 获取 legend 配置项 * 由各图各自实现,不同的图 legend 可能不同 */ getLegendOptions(): LegendOptions; /** * 添加 legend 控件 */ addLegendControl(options: LegendOptions): void; /** * 更新 legend 控件 */ updateLegendControl(options: LegendOptions): void; /** * 移除 legend 控件 */ removeLegendControl(): void; /** * 初始化 tooltip */ protected initTooltip(): void; /** * 导出地图图片 */ exportPng(type?: 'png' | 'jpg'): Promise; /** * 销毁 */ destroy(): void; }