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