Skip to content

cesium2s


cesium2s / Drawer

类: Drawer

Description

Cesium场景图形绘制工具类 统一管理多种图形绘制器,支持动态切换绘制类型,提供完整的绘制生命周期控制

Features

  • 支持七种基本图形绘制:点、折线、多边形、矩形、样条曲线、贝塞尔曲线、箭头
  • 统一的绘制控制接口:开始/结束绘制、清空、销毁等
  • 自定义样式支持:通过DrawerStyle配置绘制外观
  • 事件回调:提供图形闭合完成事件
  • 快捷操作:支持【ctrl+z】撤销操作

示例

ts
// 1. 初始化绘制工具
const drawer = new Drawer(viewer, {
  point: { color: Cesium.Color.RED },
  polyline: { width: 3 }
});

// 2. 设置绘制类型为多边形
drawer.type = 'polygon';

// 3. 开始绘制
drawer.start();

// 4. 监听图形闭合事件
drawer.onClose = (entity) => {
  console.log('多边形绘制完成', entity);
};

// 5. 结束当前绘制
drawer.end();

// 6. 清空所有绘制图形
drawer.clear();

// 7. 销毁工具(组件卸载时调用)
drawer.destroy();

构造函数

构造函数

new Drawer(viewer, styleOption?): Drawer

创建绘制工具实例

参数

viewer

Viewer

Cesium Viewer实例

styleOption?

DrawerStyle

全局绘制样式配置(可选)

返回

Drawer

属性

_onClose()

protected _onClose: (e) => void

图形闭合事件的私有回调函数

参数

e

Entity

返回

void

默认值

ts
空函数
@protected

_type

protected _type: DrawerType = "point"

当前绘制类型的私有存储

默认值

ts
'point'
@protected

drawerMap

protected drawerMap: Map<DrawerType, DrawerBase>

绘制器映射表,存储所有支持的图形绘制器


Instance

protected Instance: DrawerBase

当前激活的绘制器实例


isDrawing

isDrawing: boolean = false

当前是否处于绘制状态

默认值

ts
false

styleOption?

optional styleOption: DrawerStyle

全局绘制样式配置(可选)


viewer

viewer: Viewer

Cesium Viewer实例

访问器

onClose

Getter 签名

get onClose(): (e) => void

获取图形闭合事件回调

返回

(e): void

参数
e

Entity

返回

void

Setter 签名

set onClose(fn): void

设置图形闭合事件回调(会同步到所有绘制器)

参数
fn

(e) => void

回调函数,参数为绘制完成的Entity

返回

void


type

Getter 签名

get type(): DrawerType

获取当前绘制类型

返回

DrawerType

Setter 签名

set type(val): void

设置当前绘制类型(会自动切换绘制器)

参数
val

DrawerType

目标绘制类型

返回

void

方法

clear()

clear(): void

清空所有绘制的图形要素

返回

void

Description

移除所有通过本工具绘制的Entity


destroy()

destroy(): void

销毁绘制工具

返回

void

Description

彻底清理资源,移除所有事件监听和绘制的要素,释放内存


end()

end(): void

结束当前图形绘制

返回

void

Description

停止绘制状态,结束当前图形编辑


initDrawerMap()

protected initDrawerMap(): void

初始化绘制器映射表(内部使用)

返回

void

Description

创建所有支持的图形绘制器实例并存储到映射表


start()

start(): void

开始当前类型的图形绘制

返回

void

Description

激活绘制状态,监听鼠标事件进行图形绘制


toggleDrawer()

protected toggleDrawer(): void

切换绘制器实例(内部使用)

返回

void

Description

当绘制类型改变时,切换到对应绘制器并保持绘制状态