462af9b826c8de88c3aa1586591897ddf6f044eb..c954cdb51f93585b58b761c2663688c36e6b044f
8 天以前 jihongshun
创建航线新增全局配置
c954cd 对比 | 目录
8 天以前 jihongshun
优化线的逻辑
c11029 对比 | 目录
已修改3个文件
112 ■■■■■ 文件已修改
src/utils/components/init-map.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/project/components/addPorjectDialog.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/shootPoint/components/shootPointDialog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/components/init-map.vue
@@ -180,6 +180,7 @@
        cameraT:0.0,
        pointGround: { lon: 0, lat: 0, height: 0 },
        pointFly: { lon: 0, lat: 0, height: 0 },
        rowData:null
    }
  },
  mounted(){
@@ -322,6 +323,7 @@
    creatPin(id, position, font, color, viewer) {
      let pinBuilder = new Cesium.PinBuilder();
      let addPin = viewer.entities.getById(id);
      console.log(addPin)
      if (addPin == undefined) {
        viewer.entities.add({
          id: id,
@@ -617,6 +619,13 @@
            const gure = Cesium.Cartesian3.distance(point1, point2)
            this.betweenDistance  = gure
        }
        if(this.rowData) {
          this.pointGround = {
            lon:this.rowData.longitude,
            lat:this.rowData.latitude,
            height:this.rowData.height
          }
        }
        this.pointFly = { 
          lon: lon, 
          lat: lat, 
@@ -820,7 +829,9 @@
              label: `空中点${idx}`,
              longitude: Cesium.Math.toDegrees(aerialPos.longitude),
              latitude: Cesium.Math.toDegrees(aerialPos.latitude),
              height: aerialPos.height
              height: aerialPos.height,
              heading:Cesium.Math.toDegrees(viewerC.camera.heading),
              pitch:Cesium.Math.toDegrees(viewerC.camera.pitch)
            }
          ]
        };
@@ -1139,6 +1150,18 @@
      return Math.asin(directionLocal.z); // z轴向上
    },
    DealVisualCone(data,node){
      this.rowData = data
      console.log(data)
      this.pointGround = {
        lon:data.children[0].longitude,
        lat:data.children[0].latitude,
        height:data.children[0].height
      }
      this.pointFly = {
        lon:data.longitude,
        lat:data.latitude,
        height:data.height
      }
      if(data.children && data.children?.length > 0) {
        preVideoScopePrimitiveArrTie.map((item)=>{
          if(item.name != data.children[0].label){
src/views/system/project/components/addPorjectDialog.vue
@@ -12,6 +12,7 @@
                <div class="chooseModel">
                  <div class="fontJust">设备列表</div>
                   <el-button @click="addDevice"> 新增</el-button>
                   <el-button @click="lineSet"> 航线设置</el-button>
                  <el-table
                    :data="tableData"
                    max-height = '180'
@@ -66,6 +67,77 @@
    </el-dialog>
     <chooseDeviceDialog v-if="showDevice" @cancel ='cancel' @dealChooseArr="dealChooseArr" ></chooseDeviceDialog>
     <chooseModelDialog v-if="showModel" @cancelModel ='cancelModel' @receiveModel="receiveModel" :deviceId="deviceId"></chooseModelDialog>
     <el-drawer
      title="航线设置"
      :visible.sync="drawer"
      direction="rtl">
      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
        <el-form-item label="起飞爬升" prop="region">
          <el-select v-model="ruleForm.region" placeholder="请选择起飞爬升">
            <el-option label="垂直" value="垂直"></el-option>
            <el-option label="倾斜" value="倾斜"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="全局航线速度" prop="region">
          <div class="speed-control">
            <el-input-number
              v-model="ruleForm.speed"
              :min="0"
              :max="50"
              :step="1"
              controls-position="both"
              @change="handleChange"
            />
            <span class="unit">m/s</span>
          </div>
        </el-form-item>
        <el-form-item label="起飞速度" prop="fly">
          <div class="speed-control">
            <el-input-number
              v-model="ruleForm.flySpeed"
              :min="0"
              :max="50"
              :step="1"
              controls-position="both"
              @change="handleChange"
            />
            <span class="unit">m/s</span>
          </div>
        </el-form-item>
        <el-form-item label="航点类型" prop="region1">
          <el-select v-model="ruleForm.region1" placeholder="请选择航点类型">
            <el-option label="协调转弯,不过点,提前转弯" value="协调转弯,不过点,提前转弯"></el-option>
            <el-option label="直线飞行,飞行器到点停" value="直线飞行,飞行器到点停"></el-option>
            <el-option label="平滑过点,提前转弯" value="平滑过点,提前转弯"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="飞行器偏航角模式" prop="region2">
          <el-select v-model="ruleForm.region2" placeholder="请选择飞行器偏航角模式">
            <el-option label="沿航线方向" value="沿航线方向"></el-option>
            <el-option label="手动控制" value="手动控制"></el-option>
            <el-option label="锁定当前偏航角" value="锁定当前偏航角"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="航点间云台俯仰角控制模式" prop="region3">
          <el-select v-model="ruleForm.region3" placeholder="请选择航点间云台俯仰角控制模式">
            <el-option label="手动控制" value="手动控制"></el-option>
            <el-option label="依照每个航点设置" value="依照每个航点设置"></el-option>
          </el-select>
        </el-form-item>
         <el-form-item label="完成动作" prop="region4">
          <el-select v-model="ruleForm.region4" placeholder="请选择完成动作">
            <el-option label="自动返航" value="自动返航"></el-option>
            <el-option label="返回航线起始点悬停" value="返回航线起始点悬停"></el-option>
            <el-option label="退出航线模式" value="退出航线模式"></el-option>
            <el-option label="原地降落" value="原地降落"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="submitForm('ruleForm')">保存</el-button>
          <el-button @click="resetForm('ruleForm')">取消</el-button>
        </el-form-item>
      </el-form>
    </el-drawer>
  </div>
</template>
<script>
@@ -93,7 +165,13 @@
        showDevice:false,
        multipleSelection: [],
        showModel:false,
        deviceId:null
        deviceId:null,
        drawer:false,
        ruleForm:{
          speed:14,
          flySpeed:15
        },
    }
  },
  methods:{
@@ -589,6 +667,9 @@
            })
        }
      })
    },
    lineSet(){
      this.drawer =true
    }
  }
}
src/views/system/shootPoint/components/shootPointDialog.vue
@@ -228,12 +228,12 @@
        //点击父级
        const from = [data.children[0].longitude,data.children[0].latitude, data.children[0].height];
        const to = [data.longitude,data.latitude, data.height];      
        this.flyToAndLookAt(from, to);
        // this.flyToAndLookAt(from, to);
      } else  {
        //点击子级
        const from = [data.longitude,data.latitude, data.height]; 
        const to = [node.parent?.data?.longitude,node.parent?.data?.latitude, node.parent?.data?.height]; 
        this.flyToAndLookAt(from, to);
        // this.flyToAndLookAt(from, to);
      }
      this.$refs.initMap.DealVisualCone(data,node)
    },