吉安感知网项目-前端
shuishen
5 days ago 6e88705bd5b443a259b24c17c8a299765d059d96
applications/drone-command/src/utils/cesium/shapeTools/edit/EditRectangleTool.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, rectanglePositionsFromBounds } from '../shapeUtils'
@@ -47,7 +47,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) {
@@ -60,7 +60,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.dragIndex == null) return
      const position = this.getPositionFromScreen(evt.endPosition)
      if (!position) return
@@ -139,14 +144,13 @@
   }
   getCornerCartographics() {
      return rectanglePositionsFromBounds(this.bounds).map(position =>
         Cesium.Cartographic.fromCartesian(position)
      )
      return rectanglePositionsFromBounds(this.bounds).map(position => Cesium.Cartographic.fromCartesian(position))
   }
   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)
   }