| | |
| | | cameraT:0.0, |
| | | pointGround: { lon: 0, lat: 0, height: 0 }, |
| | | pointFly: { lon: 0, lat: 0, height: 0 }, |
| | | rowData:null |
| | | } |
| | | }, |
| | | mounted(){ |
| | |
| | | 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, |
| | |
| | | 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, |
| | |
| | | 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) |
| | | } |
| | | ] |
| | | }; |
| | |
| | | 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){ |
| | |
| | | <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' |
| | |
| | | </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> |
| | |
| | | showDevice:false, |
| | | multipleSelection: [], |
| | | showModel:false, |
| | | deviceId:null |
| | | deviceId:null, |
| | | drawer:false, |
| | | ruleForm:{ |
| | | speed:14, |
| | | flySpeed:15 |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | methods:{ |
| | |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | lineSet(){ |
| | | this.drawer =true |
| | | } |
| | | } |
| | | } |
| | |
| | | //点击父级 |
| | | 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) |
| | | }, |