吉安感知网项目-前端
shuishen
2026-02-03 89380e6260a75d1d3b94de687ebcc2f50d50659d
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