无人机管理后台前端(已迁走)
张含笑
2025-10-28 0f16db42e4e331bfaf084c27ca602c275e87668d
src/views/layerManagement/components/utils.js
@@ -61,6 +61,8 @@
      this.delPoint = this.delPoint.bind(this)
      // 外部订阅者
      this.listeners = []
      this.polygons = []; // 存储所有多边形数据 { id, positions, entity, pointsEntity }
      this.currentPolygonIndex = -1; // 当前操作的多边形索引
   }
   // 实体命名常量
@@ -164,6 +166,8 @@
            ind: pointIndex, // 索引记录
         },
      })
   }
   // 清除不在范围内的点
   removeLastInvalidPoint() {
@@ -308,11 +312,11 @@
      this.removeMenuPopup()
      const pickedAllEntity = this.viewer.scene.drillPick(click.position).filter(i => i.id)
      const isStartPoint = pickedAllEntity.find(i => i.id.name === '起飞点')
      const isPolygonPoint = pickedAllEntity.find(i => i.id.name === DrawPolygon.ENTITY_NAMES.POINT)
      const isPolygon = pickedAllEntity.find(i => i.id.name === DrawPolygon.ENTITY_NAMES.POLYGON)
      if (isStartPoint) return
      // 如果不是绘制模式
      if (!this.drawingMode) {
@@ -349,10 +353,9 @@
   }
   // 鼠标右键点击(弹出菜单)
   handleRightClick(click) {
   handleRightClick(click) {
      const that = this
      if (that.drawingMode) return
      that.removeMenuPopup()
      const pickedAllEntity = that.viewer.scene.drillPick(click.position).filter(i => i.id)
@@ -367,10 +370,12 @@
         pickedEntity = isPolygon
         tooltipEvent = that.delPolygon
         menuType = 'polygon'
      } else if (isEditPoint) {
         pickedEntity = isEditPoint
         tooltipEvent = that.delPoint
         menuType = 'edit-point'
      }
      if (pickedEntity && this.isDeleteTheArea) {
@@ -469,6 +474,7 @@
      menuPopup.id = 'planarPolygonEditMenu'
      menuPopup.className = 'planar-polygon-edit-menu'
      const menuItems =
         type === 'polygon'
            ? [{ title: '删除测区', class: 'del-planar-polygon' }]
@@ -480,6 +486,7 @@
         titleDiv.className = item.class
         menuPopup.appendChild(titleDiv)
      })
      this.isPreviewMode = true
      menuPopupVBox.appendChild(menuPopup)
      return menuPopupVBox
@@ -541,6 +548,7 @@
      this.initHandler(viewer)
      this.isPureSpotPreview = isPurePreview
      this.startDrawing()
      let newPosition = positions.map(item => {
         return Cesium.Cartesian3.fromDegrees(Number(item.lng), Number(item.lat), Number(item.height))
      })