GuLiMmo
2023-11-29 7d9fb50b4e444ba3afec098ad031e93b4e9ee9ee
src/components/g-map/DroneControlPanel.vue
@@ -321,6 +321,7 @@
import { parseJsonFile } from '/@/utils/geo-utils'
import { cesiumOperation } from '/@/hooks/use-cesium-tsa'
import * as Cesium from 'cesium'
import { start } from 'repl'
const props = defineProps<{
    sn: string,
    deviceInfo: DeviceInfoType,
@@ -524,9 +525,17 @@
  // })
  flyByArea(sn, dockPoint, jsonPath, radius, deviceSn, payloadIndex).then(res => {
    const targetPoint = res.data
    const targetPoint = res.data || []
    // 机场位置
    const startPoint = {
      lon: props.deviceInfo.dock.basic_osd.longitude,
      lat: props.deviceInfo.dock.basic_osd.latitude
    }
    targetPoint.unshift(startPoint)
    console.log('targetPoint====', targetPoint)
    // 获取到点之后在图上绘点
    targetPoint.forEach((point, index) => {
    targetPoint.forEach((point: { lon: number; lat: number }, index: number) => {
      console.log(point)
      const setting = {
        longitude: point.lon,
        latitude: point.lat,
@@ -546,8 +555,49 @@
        },
        id: 'target' + index,
      }
      cesiumFunc.addPoint(setting)
      // 根据点画连线
      let polylineSetting = {}
      if (index === (targetPoint.length - 1)) {
        polylineSetting = {
          polyline: {
            positions: Cesium.Cartesian3.fromDegreesArrayHeights([
              point.lon,
              point.lat,
              0,
              targetPoint[0].lon,
              targetPoint[0].lat,
              0
            ]),
            width: 10,
            arcType: Cesium.ArcType.NONE,
            material: new Cesium.PolylineArrowMaterialProperty(
              Cesium.Color.RED
            ),
          },
          id: 'fxTarget' + index
        }
      } else {
        polylineSetting = {
          polyline: {
            positions: Cesium.Cartesian3.fromDegreesArrayHeights([
              point.lon,
              point.lat,
              0,
              targetPoint[index + 1].lon,
              targetPoint[index + 1].lat,
              0
            ]),
            width: 10,
            arcType: Cesium.ArcType.NONE,
            material: new Cesium.PolylineArrowMaterialProperty(
              Cesium.Color.RED
            ),
          },
          id: 'fxTarget' + index
        }
      }
      cesiumFunc.addPolyline(polylineSetting)
    })
  })
}