import Geometry from '../../geometry/Geometry'; import MapTool from './MapTool'; import { Coordinate } from '../../geo'; import { MapEventDataType } from '../Map.DomEvents'; export type DrawToolOptions = { mode?: string; symbol?: any; once?: boolean; autoPanAtEdge?: boolean; blockGeometryEvents?: boolean; zIndex?: number; doubleClickZoom?: boolean; ignoreMouseleave?: boolean; enableAltitude?: boolean; interactive?: boolean; edgeAutoComplete?: boolean; transformCoordinate?: (coordinate: Coordinate, e: MapEventDataType) => Coordinate | undefined; }; export type modeActionType = { action?: string | Array; create?: any; update?: any; generate?: any; clickLimit?: number | string; }; /** * 图形绘制工具类 * * @english * A map tool to help draw geometries. * @category maptool * @extends MapTool * @example * var drawTool = new DrawTool({ * mode : 'Polygon', * symbol : { * 'lineColor' : '#000', * 'lineWidth' : 5 * }, * once : true * }).addTo(map); */ declare class DrawTool extends MapTool { options: DrawToolOptions; id: number; /** * 为DrawTool注册一个新mode * * @english * Register a new mode for DrawTool * @param name mode name * @param modeAction modeActions * @param modeAction.action the action of DrawTool: click, mousedown, clickDblclick * @param modeAction.create the create method of drawn geometry * @param modeAction.update the update method of drawn geometry * @param modeAction.generate the method to generate geometry at the end of drawing. * @example * //Register "CubicBezierCurve" mode to draw Cubic Bezier Curves. * DrawTool.registerMode('CubicBezierCurve', { 'action': 'clickDblclick', 'create': path => new CubicBezierCurve(path), 'update': (path, geometry) => { geometry.setCoordinates(path); }, 'generate': geometry => geometry } }); */ static registerMode(name: string, modeAction: modeActionType): void; /** * 根据name获取mode actions * * @english * Get mode actions by mode name * @param name DrawTool mode name * @return mode actions */ static getRegisterMode(name: string): modeActionType | undefined; /** * 获取all mode actions * * @english * Get all mode actions * @return mode actions */ static getAllRegisterMode(): Record; /** * 实例化DrawTool工具 * * @english * In default, DrawTool supports the following modes:
* [Point, LineString, Polygon, Circle, Ellipse, Rectangle, ArcCurve, QuadBezierCurve, CubicBezierCurve]
* You can easily add new mode to DrawTool by calling [registerMode]{@link DrawTool.registerMode} * @param options=null - construct options * @param options.mode=null - mode of the draw tool * @param options.symbol=null - symbol of the geometries drawn * @param options.once=null - whether disable immediately once drawn a geometry. * @param options.autoPanAtEdge=false - Whether to make edge judgement or not. */ constructor(options: DrawToolOptions); /** * 获取当前mode * * @english * Get current mode of draw tool * @return mode */ getMode(): string; /** * 设置mode * * @english * Set mode of the draw tool * @param mode - mode of the draw tool * @returns {DrawTool} this * @expose */ setMode(mode: string): DrawTool; /** * 获取DrawTool的symbol属性 * * @english * Get symbol of the draw tool * @return symbol */ getSymbol(): any; /** * 设置DrawTool的symbol属性 * * @english * Set draw tool's symbol * @param symbol - symbol set * @returns {DrawTool} this */ setSymbol(symbol: any): DrawTool; /** * 获取当前绘制图形 * * @english * Get geometry is currently drawing * @return geometry currently drawing */ getCurrentGeometry(): Geometry; onAdd(): void; onEnable(): this; onDisable(): this; /** * 撤消绘图,仅适用于点击/删除模式 * * @english * Undo drawing, only applicable for click/dblclick mode * @return this */ undo(): this; /** * 重做绘图,只适用于click/dblclick模式 * * @english * Redo drawing, only applicable for click/dblclick mode * @return this */ redo(): this; getEvents(): {}; _copyMapEventOnSnapTo(mapEvent: any, prjCoord: any): any; /** * 结束当前绘制 * * @english * End current draw * @param [param=null] params of drawend event * @returns this */ endDraw(param: any): DrawTool; /** * 设置Layer的zIndex * @english * set draw inner layers zIndex * @param {Number} zIndex - draw layer zIndex * @return this */ setLayerZIndex(zIndex: number): this; /** * 添加一个自定义的坐标点 * @english * add a custom Coordinate * @param {Coordinate} coordinate - coordinate * @return this */ addCoordinate(coordinate: Coordinate): this; /** * 获取临时的Geometry * @english * get temp Geometry * @return Geometry */ getTempGeometry(): any; } export default DrawTool; //# sourceMappingURL=DrawTool.d.ts.map