From 20af1273bd4ae8ae061a92768e14f95d52721e6c Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 28 Jan 2026 18:46:28 +0800
Subject: [PATCH] feat:绘制区域颜色处理

---
 applications/drone-command/src/views/areaManage/partition/shapeTools/draw/DrawRectangleTool.js |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/applications/drone-command/src/views/areaManage/partition/shapeTools/draw/DrawRectangleTool.js b/applications/drone-command/src/views/areaManage/partition/shapeTools/draw/DrawRectangleTool.js
index 4d1cbc8..574f6b6 100644
--- a/applications/drone-command/src/views/areaManage/partition/shapeTools/draw/DrawRectangleTool.js
+++ b/applications/drone-command/src/views/areaManage/partition/shapeTools/draw/DrawRectangleTool.js
@@ -3,8 +3,17 @@
 import { ToolBase } from '../ToolBase'
 import { getBoundsFromCartesians, rectanglePositionsFromBounds } from '../shapeUtils'
 
+const DEFAULT_STYLE = {
+	fill: Cesium.Color.fromBytes(45, 140, 240, 99),
+	outline: Cesium.Color.fromBytes(45, 140, 240, 255),
+}
+const resolveStyle = style => ({
+	fill: style?.fill || DEFAULT_STYLE.fill,
+	outline: style?.outline || DEFAULT_STYLE.outline,
+})
+
 export class DrawRectangleTool extends ToolBase {
-	constructor(viewer) {
+	constructor(viewer, options = {}) {
 		super(viewer)
 		this.tooltip = new MapTooltip(viewer)
 		this.dataSource = null
@@ -13,6 +22,7 @@
 		this.startPosition = null
 		this.endPosition = null
 		this.isDrawing = false
+		this.style = resolveStyle(options?.style)
 	}
 
 	start() {
@@ -70,7 +80,7 @@
 		this.rectangleEntity = this.dataSource.entities.add({
 			polygon: {
 				hierarchy,
-				material: Cesium.Color.fromBytes(45, 140, 240, 99),
+				material: this.style.fill,
 				outline: false,
 				heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
 			},
@@ -84,7 +94,7 @@
 				}, false),
 				clampToGround: true,
 				width: 2,
-				material: Cesium.Color.fromBytes(45, 140, 240, 255),
+				material: this.style.outline,
 			},
 		})
 	}
@@ -109,6 +119,16 @@
 		return scene.camera.pickEllipsoid(screenPosition, scene.globe.ellipsoid)
 	}
 
+	setStyle(style) {
+		this.style = resolveStyle(style)
+		if (this.rectangleEntity?.polygon) {
+			this.rectangleEntity.polygon.material = this.style.fill
+		}
+		if (this.outlineEntity?.polyline) {
+			this.outlineEntity.polyline.material = this.style.outline
+		}
+	}
+
 	destroy() {
 		if (this.dataSource) {
 			this.dataSource.entities.removeAll()

--
Gitblit v1.9.3