From ecc89fd2f61441ea03a264f6111a6089ce4ed2aa Mon Sep 17 00:00:00 2001 From: jihongshun <1151753686@qq.com> Date: 星期一, 28 七月 2025 10:58:53 +0800 Subject: [PATCH] 视锥体保存更新 --- src/utils/components/init-map.vue | 66 +++++++++++++------------------- 1 files changed, 27 insertions(+), 39 deletions(-) diff --git a/src/utils/components/init-map.vue b/src/utils/components/init-map.vue index 36e654f..2184ae1 100644 --- a/src/utils/components/init-map.vue +++ b/src/utils/components/init-map.vue @@ -12,8 +12,6 @@ <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"> @@ -96,7 +94,7 @@ let ScopeElement; //鍏夎酱銆佽棰� let preVideoScopePrimitiveArrTie = []; let scratchSetViewMatrix3 = new Cesium.Matrix3(); - +let chooseId // let pois = [0, 0,0] let holdingPosition; let rightKeyMove = false @@ -338,18 +336,21 @@ 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), @@ -753,20 +754,6 @@ } 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) @@ -814,7 +801,7 @@ 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: { @@ -831,12 +818,19 @@ // 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 + } + }) } // } }, @@ -893,16 +887,6 @@ 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; @@ -914,11 +898,15 @@ // 璁$畻璺濈锛堝崟浣嶏細绫筹級 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) { -- Gitblit v1.9.3