| | |
| | | <el-input v-model="mergeNumber" placeholder="请输入合并范围" type="number" style="width: 150px;"></el-input> |
| | | <el-button @click="mergePoint()" type="success">合并</el-button> |
| | | <el-button @click="renderData()" type="success">数据渲染</el-button> |
| | | <el-button @click="VisualCone()" type="success">生成视锥体</el-button> |
| | | <el-button @click="fly()" type="success">飞到指定地点</el-button> |
| | | |
| | | </div> |
| | | <!-- <div class="key-container"> |
| | |
| | | let ScopeElement; //光轴、视频 |
| | | let preVideoScopePrimitiveArrTie = []; |
| | | let scratchSetViewMatrix3 = new Cesium.Matrix3(); |
| | | |
| | | let chooseId |
| | | // let pois = [0, 0,0] |
| | | let holdingPosition; |
| | | let rightKeyMove = false |
| | |
| | | const tagert = Cesium.Cartesian3.add(holdingPosition,scalerNormalize,new Cesium.Cartesian3()); |
| | | console.log(Cesium.Cartographic.fromCartesian(tagert)) |
| | | _this.creatPin("aerialPoiId"+counter,tagert,`空${counter}`,Cesium.Color.RED,viewerM); |
| | | preVideoScopePrimitiveArrTie = [] |
| | | // preVideoScopePrimitiveArrTie = [] |
| | | console.log(preVideoScopePrimitiveArrTie) |
| | | |
| | | console.log(Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).height)) |
| | | _this.updateCameraMovement(); |
| | | if(cameraVideo){ |
| | | viewerM.scene.primitives.remove(cameraVideo) |
| | | } |
| | | // if(cameraVideo){ |
| | | // viewerM.scene.primitives.remove(cameraVideo) |
| | | // } |
| | | chooseId = crypto.randomUUID() |
| | | //创建视锥体 |
| | | let data = { |
| | | "FHorFieldAngle": 32.13, |
| | | "FVerFieldAngle": 18.39, |
| | | "altitude": Cesium.Cartographic.fromCartesian(tagert).height, |
| | | "id": "111111", |
| | | "id": chooseId, |
| | | "chanNo": 1, |
| | | "latitude": Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).latitude), |
| | | "longitude": Cesium.Math.toDegrees(Cesium.Cartographic.fromCartesian(tagert).longitude), |
| | |
| | | } |
| | | this.updateCameraMovement() |
| | | }, |
| | | VisualCone(){ |
| | | let data = { |
| | | "FHorFieldAngle": 32.13, |
| | | "FVerFieldAngle": 18.39, |
| | | "altitude": 55, |
| | | "cameraId": "fdae8144e0fc47cf95152080eb3f7db3", |
| | | "chanNo": 1, |
| | | "latitude": 46.58528798, |
| | | "longitude": 124.9662813, |
| | | "p": 26.8, |
| | | "t": 351.3, |
| | | "z": 1 |
| | | } |
| | | }, |
| | | // 创建初始化的光轴 |
| | | createVideoScope(data) { |
| | | console.log(data) |
| | |
| | | showHelperPrimitive: true, |
| | | }); |
| | | cameraVideo._primitive.classificationType = 2; // 同时投影地形和3dtiles数据 |
| | | cameraVideo.id = "sz" + data.id; |
| | | cameraVideo.id = data.id; |
| | | let isHole = false; |
| | | cameraVideo._primitive.appearance.material = new Cesium.Material({ |
| | | fabric: { |
| | |
| | | // viewer.scene.primitives.add(cameraVideo); |
| | | let pmObj = {}; |
| | | console.log(data) |
| | | pmObj.id = "sz" + data.id; |
| | | pmObj.id = data.id; |
| | | console.log(pmObj) |
| | | pmObj.primitive = cameraVideo; |
| | | // pmCollection.push(pmObj);//幕布,视频转换使用 |
| | | viewerM.scene.primitives.add(cameraVideo); |
| | | preVideoScopePrimitiveArrTie.push(pmObj); |
| | | preVideoScopePrimitiveArrTie.map((item)=>{ |
| | | console.log(item) |
| | | console.log(chooseId) |
| | | if(item.id != chooseId){ |
| | | item.primitive.show = false |
| | | } |
| | | }) |
| | | } |
| | | // } |
| | | }, |
| | |
| | | |
| | | return inverseViewMatrix; |
| | | }, |
| | | fly(){ |
| | | viewerM.scene.camera.setView({ |
| | | destination: Cesium.Cartesian3.fromDegrees(124.9662813, 46.58528798, 349.0), // 以经纬度设置位置(例如:大庆龙兴路) |
| | | orientation: { |
| | | heading: Cesium.Math.toRadians(194.65), // 方向 |
| | | pitch: Cesium.Math.toRadians(-31.43), // 俯角 |
| | | roll: 0 |
| | | } |
| | | }); |
| | | }, |
| | | onCameraChange() { |
| | | const camera = viewerC.camera; |
| | | const position = camera.positionCartographic; |
| | |
| | | // 计算距离(单位:米) |
| | | const distanceBetween = Cesium.Cartesian3.distance(point1, point2) |
| | | console.log(distanceBetween) |
| | | if(preVideoScopePrimitiveArrTie?.length !=0 ){ |
| | | let obj = this.updateSZScope(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height,heading,pitch,roll,1,distanceBetween) |
| | | preVideoScopePrimitiveArrTie[0].primitive.inverseViewMatrix = obj.M |
| | | preVideoScopePrimitiveArrTie[0].primitive.frustum = obj.F |
| | | } |
| | | console.log(preVideoScopePrimitiveArrTie) |
| | | console.log(chooseId) |
| | | preVideoScopePrimitiveArrTie.map((item)=>{ |
| | | if(item.id == chooseId){ |
| | | let obj = this.updateSZScope(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height,heading,pitch,roll,1,distanceBetween) |
| | | item.primitive.inverseViewMatrix = obj.M |
| | | item.primitive.frustum = obj.F |
| | | } |
| | | }) |
| | | }, |
| | | //更新视椎体位置 |
| | | updateSZScope(lon, lat, alt, camHeading, camPitch, camRoll, LightView,distanceBetween) { |