cesium2s / Drawer
类: Drawer
Description
Cesium场景图形绘制工具类 统一管理多种图形绘制器,支持动态切换绘制类型,提供完整的绘制生命周期控制
Features
- 支持七种基本图形绘制:点、折线、多边形、矩形、样条曲线、贝塞尔曲线、箭头
- 统一的绘制控制接口:开始/结束绘制、清空、销毁等
- 自定义样式支持:通过DrawerStyle配置绘制外观
- 事件回调:提供图形闭合完成事件
- 快捷操作:支持【ctrl+z】撤销操作
示例
// 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?
全局绘制样式配置(可选)
返回
Drawer
属性
_onClose()
protected_onClose: (e) =>void
图形闭合事件的私有回调函数
参数
e
Entity
返回
void
默认值
空函数
@protected_type
protected_type:DrawerType="point"
当前绘制类型的私有存储
默认值
'point'
@protecteddrawerMap
protecteddrawerMap:Map<DrawerType,DrawerBase>
绘制器映射表,存储所有支持的图形绘制器
Instance
protectedInstance:DrawerBase
当前激活的绘制器实例
isDrawing
isDrawing:
boolean=false
当前是否处于绘制状态
默认值
falsestyleOption?
optionalstyleOption: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
获取当前绘制类型
返回
Setter 签名
set type(
val):void
设置当前绘制类型(会自动切换绘制器)
参数
val
目标绘制类型
返回
void
方法
clear()
clear():
void
清空所有绘制的图形要素
返回
void
Description
移除所有通过本工具绘制的Entity
destroy()
destroy():
void
销毁绘制工具
返回
void
Description
彻底清理资源,移除所有事件监听和绘制的要素,释放内存
end()
end():
void
结束当前图形绘制
返回
void
Description
停止绘制状态,结束当前图形编辑
initDrawerMap()
protectedinitDrawerMap():void
初始化绘制器映射表(内部使用)
返回
void
Description
创建所有支持的图形绘制器实例并存储到映射表
start()
start():
void
开始当前类型的图形绘制
返回
void
Description
激活绘制状态,监听鼠标事件进行图形绘制
toggleDrawer()
protectedtoggleDrawer():void
切换绘制器实例(内部使用)
返回
void
Description
当绘制类型改变时,切换到对应绘制器并保持绘制状态