From 42fcd9fbfb765ba41e1ab1a6b276671a2e6af9e7 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 08 Apr 2026 20:17:07 +0800
Subject: [PATCH] feat: 优化绘制面
---
packages/utils/map/DrawPolygon.js | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/packages/utils/map/DrawPolygon.js b/packages/utils/map/DrawPolygon.js
index 2bdeeff..2674830 100644
--- a/packages/utils/map/DrawPolygon.js
+++ b/packages/utils/map/DrawPolygon.js
@@ -61,6 +61,7 @@
this.handleLeftUp = this.handleLeftUp.bind(this)
this.handleMouseMove = this.handleMouseMove.bind(this)
this.handleLeftClick = this.handleLeftClick.bind(this)
+ this.handleDoubleClick = this.handleDoubleClick.bind(this)
this.handleRightClick = this.handleRightClick.bind(this)
this.delPolygon = this.delPolygon.bind(this)
@@ -548,6 +549,14 @@
this.addPosition(cartesian)
}
+ // 鼠标双击(完成绘制)
+ handleDoubleClick() {
+ if (!this.drawingMode) return
+ // 双击时第一次 LEFT_CLICK 已经添加了一个点,所以至少需要 4 个点(3个有效点 + 1个跟踪点)
+ if (this.curPolygon.positions.length < 4) return
+ this.finishDrawing()
+ }
+
// 鼠标右键点击(弹出菜单)
handleRightClick(click) {
const that = this
@@ -829,6 +838,7 @@
[Cesium.ScreenSpaceEventType.LEFT_UP, this.handleLeftUp],
[Cesium.ScreenSpaceEventType.MOUSE_MOVE, this.handleMouseMove],
[Cesium.ScreenSpaceEventType.LEFT_CLICK, this.handleLeftClick],
+ [Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK, this.handleDoubleClick],
[Cesium.ScreenSpaceEventType.RIGHT_CLICK, this.handleRightClick],
]
@@ -846,6 +856,7 @@
Cesium.ScreenSpaceEventType.LEFT_UP,
Cesium.ScreenSpaceEventType.MOUSE_MOVE,
Cesium.ScreenSpaceEventType.LEFT_CLICK,
+ Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK,
Cesium.ScreenSpaceEventType.RIGHT_CLICK,
]
--
Gitblit v1.9.3