UNPKG

@tuoyuan/map-adapter-lib

Version:

地图适配器库

156 lines (155 loc) 3.73 kB
import { EventBus, Position, Icon, Label, OpenInfoWindow, CloseInfoWindow, IBounds, LabelPlacement } from '.'; import { ProxyMap, Path, ILineStyle, IFillStyle, ILabelStyle } from '../types'; /** Polygon样式 */ export interface IPolygonStyle { /** 轮廓线 */ line?: ILineStyle; /** 填充 */ fill?: IFillStyle; /** 文本标签 */ label: ILabelStyle; } /** Polygon配置 */ export interface IPolygon<T = any> { /** ID */ id: number; /** 名称 */ name?: string; /** 路径 */ path: Path; /** 孔 */ holes?: Path[]; /** 样式 */ style?: IPolygonStyle; /** 文本标签 */ label?: { /** 文本内容 */ text: string; /** 最小展示层级,地图小于此层级时默认隐藏label */ minShowZoom?: number; /** 是否显示 */ visible?: boolean; }; /** 业务数据 */ data?: T; /** 是否可见 */ visible?: boolean; } export interface IPolygonOptions { labelBasePlacement?: LabelPlacement; } export type PolygonEventName = 'click' | 'dblclick' | 'rightclick'; /** 基础Polygon类 */ export declare abstract class BasePolygon<T = any> extends EventBus<PolygonEventName> { protected _top: ProxyMap; /** ID */ protected _id: number; /** 名称 */ protected _name?: string; /** 路径 */ protected _path: Position[]; /** 样式 */ protected _style: IPolygonStyle; /** 图标 */ protected _icon?: Icon; /** 文本标签 */ protected _label?: Label; /** 业务数据 */ protected _data?: T; /** 是否可见 */ protected _visible: boolean; /** label基础方位 */ protected _labelBasePlacement: LabelPlacement; constructor(_top: ProxyMap, polygon: IPolygon<T>, options: IPolygonOptions); private genLabel; /** ID */ get id(): number; /** 名称 */ get name(): string | undefined; /** 位置 */ get path(): Position[]; /** 图标 */ get icon(): Icon | undefined; /** 业务数据 */ get data(): T | undefined; /** * 设置名称 * @param name 名称 */ setName(name: string): void; /** * 设置路径 * @param path 路径 */ setPath(path: Path): void; /** * 设置样式 * @param style 样式 */ setStyle(style: IPolygonStyle): void; /** * 设置业务数据 * @param data 业务数据 */ setData(data: T): void; /** * 显示,icon、label */ show(): void; /** * 隐藏,icon、label */ hidden(): void; /** * 显示label */ showLabel(): void; /** * 隐藏label */ hiddenLabel(): void; /** * 判断坐标是否在多边形内 */ contains(point: Position): boolean; } interface PolygonInstance { [key: string]: any; remove(): void; } /** 抽象Polygon类 */ export declare abstract class AbstractPolygon<T = any> extends BasePolygon<T> { /** * 获取所有资源实例 */ abstract getInstances(): PolygonInstance[]; /** * 删除多边形 */ abstract remove(): void; /** * 地图中心点平移至多边形 */ abstract panTo?(): void; /** * 设置多边形样式 */ abstract setStyle(option: IPolygonStyle): void; /** * 获取当前多边形的矩形范围对象 */ abstract getBounds?(): IBounds; /** * 获取多边形的面积(平方米) */ abstract getArea?(): number; /** * 打开信息窗口 */ abstract openInfoWindow?: OpenInfoWindow; /** * 关闭信息窗口 */ abstract closeInfoWindow?: CloseInfoWindow; } export {};