From ad57696cef86a678512e93207bc5538d30bc40ee Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 03 Aug 2026 10:39:46 +0800
Subject: [PATCH] feat: 播放按钮居中

---
 applications/drone-command/src/utils/cesium/shapeTools/edit/EditEllipseTool.js |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/applications/drone-command/src/utils/cesium/shapeTools/edit/EditEllipseTool.js b/applications/drone-command/src/utils/cesium/shapeTools/edit/EditEllipseTool.js
index 228eae3..1a8ad67 100644
--- a/applications/drone-command/src/utils/cesium/shapeTools/edit/EditEllipseTool.js
+++ b/applications/drone-command/src/utils/cesium/shapeTools/edit/EditEllipseTool.js
@@ -1,5 +1,5 @@
 import * as Cesium from 'cesium'
-import { MapTooltip } from '../Tooltip'
+import { MapTooltip } from '@ztzf/utils'
 import { ToolBase } from '../ToolBase'
 import {
 	getBoundsFromLngLats,
@@ -81,10 +81,8 @@
 			const minorFromMeta = Number.isFinite(meta?.semiMinor) ? Number(meta.semiMinor) : 0
 			const majorPoint = resolveCartographic(meta?.majorPoint)
 			const minorPoint = resolveCartographic(meta?.minorPoint)
-			const majorDistance =
-				majorFromMeta || (majorPoint ? getMetersBetween(centerCarto, majorPoint) : 0)
-			const minorDistance =
-				minorFromMeta || (minorPoint ? getMetersBetween(centerCarto, minorPoint) : 0)
+			const majorDistance = majorFromMeta || (majorPoint ? getMetersBetween(centerCarto, majorPoint) : 0)
+			const minorDistance = minorFromMeta || (minorPoint ? getMetersBetween(centerCarto, minorPoint) : 0)
 			if (majorDistance > 0) this.semiMajor = Math.max(1, majorDistance)
 			if (minorDistance > 0) this.semiMinor = Math.max(1, minorDistance)
 			if (this.semiMinor > this.semiMajor) this.semiMinor = this.semiMajor
@@ -119,7 +117,7 @@
 		this.handler.setInputAction(evt => this.handleLeftDown(evt), Cesium.ScreenSpaceEventType.LEFT_DOWN)
 		this.handler.setInputAction(evt => this.handleMouseMove(evt), Cesium.ScreenSpaceEventType.MOUSE_MOVE)
 		this.handler.setInputAction(() => this.handleLeftUp(), Cesium.ScreenSpaceEventType.LEFT_UP)
-		this.tooltip.show('拖动控制点编辑', { x: 0, y: 0 })
+		this.tooltip.hide()
 	}
 
 	handleLeftDown(evt) {
@@ -132,7 +130,12 @@
 	}
 
 	handleMouseMove(evt) {
-		this.tooltip.move(evt.endPosition)
+		if (!this.tooltip?.isVisible) {
+			this.tooltip.show('拖动控制点编辑', evt.endPosition)
+		} else {
+			this.tooltip.show('拖动控制点编辑')
+			this.tooltip.move(evt.endPosition)
+		}
 		if (!this.dragType) return
 		const position = this.getPositionFromScreen(evt.endPosition)
 		if (!position) return
@@ -252,7 +255,8 @@
 
 	getPositionFromScreen(screenPosition) {
 		const scene = this.viewer.scene
-		const cartesian = scene.pickPosition(screenPosition)
+		const ray = scene.camera.getPickRay(screenPosition)
+		const cartesian = ray ? scene.globe.pick(ray, scene) : null
 		if (cartesian) return cartesian
 		return scene.camera.pickEllipsoid(screenPosition, scene.globe.ellipsoid)
 	}

--
Gitblit v1.9.3