import { EventedObject } from "../base/evented-object"; import { ScreenXY } from "../common/screen-xy"; /** * 图层基类 */ export declare abstract class Layer extends EventedObject { /** * 图层名称 */ name: string; /** * 图层描述 */ description: string; /** * 图层可见设置 */ protected _visible: boolean; /** * 图层是否可见 */ get visible(): boolean; /** * 图层可见设置 */ set visible(value: boolean); /** * 图层可见缩放级别 */ private _zooms; /** * 图层可见缩放级别设置 */ get minZoom(): number; get maxZoom(): number; set minZoom(value: number); set maxZoom(value: number); set zoom(value: number[]); /** * 图层可交互设置 */ protected _interactive: boolean; /** * 图层是否可交互 */ get interactive(): boolean; /** * 图层可交互设置 */ set interactive(value: boolean); /** * 图层顺序(z-index) * @remarks * TODO: marker的异步加载,会影响绘制顺序 */ private _index; /** * 图层顺序 */ get index(): number; /** * 图层顺序设置 */ set index(value: number); protected _origin: ScreenXY; protected _zoom: number; /** * 创建图层 */ constructor(); /** * 绘制图层 * @param {CanvasRenderingContext2D} ctx - 绘图上下文 * @param {Projection} projection - 坐标投影转换 * @param {Bound} extent - 当前可视范围 * @param {number} zoom - 当前缩放级别 */ abstract draw(ctx: CanvasRenderingContext2D, zoom: number): any; }