/* * @Author: shuishen 1109946754@qq.com * @Date: 2023-03-23 11:22:18 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2023-03-24 10:02:32 * @FilePath: \forest-fire\src\utils\plot\draw\DrawPolygon.js * @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. */ /** * @Author: Caven * @Date: 2020-08-29 20:55:14 */ import Draw from './Draw' import { PlotEventType } from '@/utils/event/index.js' const DEF_STYLE = { material: global.DC.Namespace.Cesium.Color.YELLOW.withAlpha(0.6), fill: true } class DrawPolygon extends Draw { constructor(style) { super() this._style = { ...DEF_STYLE, ...style } } /** * * @private */ _mountedHook () { this.curDrawTool.tooltipMess = '左击选择点位,右击结束' this._delegate = new global.DC.Namespace.Cesium.Entity({ polygon: { ...this._style, hierarchy: new global.DC.Namespace.Cesium.CallbackProperty(() => { if (this._positions.length > 2) { return new global.DC.Namespace.Cesium.PolygonHierarchy(this._positions) } else { return null } }, false) } }) this._layer.entities.add(this._delegate) } /** * * @private */ _stopdHook () { let polygon = new global.DC.Polygon( global.DC.Transform.transformCartesianArrayToWGS84Array(this._positions) ).setStyle(this._style) this._options.onDrawStop && this._options.onDrawStop(polygon) } /** * * @param position * @private */ _onDrawAnchor (position) { this._positions.push(position) this.curDrawTool.fire(PlotEventType.CREATE_ANCHOR, { position }) } } export default DrawPolygon