From 1aac90553b2a363b324c05de4ae9190ae38e753a Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 27 Nov 2024 08:58:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/main'

---
 src/views/pd/components/dynamicPanel.vue |  151 ++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 122 insertions(+), 29 deletions(-)

diff --git a/src/views/pd/components/dynamicPanel.vue b/src/views/pd/components/dynamicPanel.vue
index d8d9a67..a37b09d 100644
--- a/src/views/pd/components/dynamicPanel.vue
+++ b/src/views/pd/components/dynamicPanel.vue
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2024-11-09 15:41:35
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-26 01:09:57
+ * @LastEditTime: 2024-11-26 19:38:30
  * @FilePath: \bigScreen\src\views\pd\components\dynamicPanel.vue
  * @Description: 
  * 
@@ -65,8 +65,8 @@
 
       fiveContent: '应急指挥部指导企业处理受污染废水, 监测公共应急池水质 ,确保达标后安全转运至绿源污水处理厂。',
       fivePointPosition: {
-        lng: 115.10845441,
-        lat: 27.27327366
+        lng: 115.10843364,
+        lat: 27.27320219
       },
       fivetime: 25000,
     },
@@ -83,10 +83,10 @@
       onetime: 0,
 
       lineCenter: {
-        lng: 115.10343807,
-        lat: 27.27256126
+        lng: 115.10627858,
+        lat: 27.29434439
       },
-      linePosition: '115.10626847,27.29410411,80;115.10626769,27.29453267,80',
+      linePosition: '115.10627726,27.29408853,80;115.10627703,27.29456132,80',
       lineTime: 5000,
 
       twoContent: '园区关闭北区雨水排口,拦截污染水体。',
@@ -122,33 +122,36 @@
       title: '典型案例3',
       content: '危险化学品运输事故: 北片区某企业的危化品运输车辆发生侧翻,大量盐酸流至路面,如不采取措施,将造成污染事故,影响到赣江下游水质。',
 
+      showModel: true,
+
+
       oneCentent: '2024年09月16日14时,北片区某公司的危化品运输车辆发生侧翻,大量盐酸流至路面。',
       onePointPosition: {
-        lng: 115.10248629,
-        lat: 27.28112873
+        lng: 115.10639786,
+        lat: 27.28116943
       },
-      onetime: 0,
+      onetime: 8000,
 
       twoContent: '调度金龙水库清水,稀释污染团。',
       twoPointPosition: {
         lng: 115.10488545,
         lat: 27.27678110
       },
-      twotime: 0,
+      twotime: 13000,
 
       threeContent: '转输至江西粤鹏环保高新技术开发有限公司事故应急池、初期雨水池。',
       threePointPosition: {
         lng: 115.10545135,
         lat: 27.28043872
       },
-      threetime: 0,
+      threetime: 18000,
 
       fourContent: '转输至江西腾龙源环保科技有限公司事故应急池、初期雨水池。',
       fourPointPosition: {
         lng: 115.10332118,
         lat: 27.27831698
       },
-      fourtime: 0,
+      fourtime: 23000,
     },
   ]
 })
@@ -157,26 +160,98 @@
 const dynamicHtmlLayer = new DC.HtmlLayer('dynamicHtmlLayer').addTo(window.$viewer)
 const dynamicLineVectorLayer = new DC.VectorLayer('dynamicLineVectorLayer').addTo(window.$viewer)
 
+let modelPosition = [
+  {
+    lng: 115.10601196,
+    lat: 27.28378838
+  },
+  {
+    lng: 115.10602432,
+    lat: 27.28339800
+  },
+  {
+    lng: 115.10600450,
+    lat: 27.28319338,
+  },
+  {
+    lng: 115.10605031,
+    lat: 27.28294272,
+  },
+  {
+    lng: 115.10610404,
+    lat: 27.28267996
+  },
+  {
+    lng: 115.10614202,
+    lat: 27.28248175
+  },
+  {
+    lng: 115.10620011,
+    lat: 27.28221311
+  },
+  {
+    lng: 115.10640155,
+    lat: 27.28121605
+  },
+
+]
+
+let positions = modelPosition.map(i => [i.lng, i.lat, 60].join(',')).join(';')
+console.log(positions, 1111111)
+let tc = new DC.TrackController(window.$viewer)
+let track = new DC.Track(positions, 5)
+track.setModel(VITE_APP_BASE + 'gltf/111.gltf', {
+  scale: 0.005,
+  color: DC.Color.RED,
+  // nodeTransformations: {
+  //   rotation: window.$Cesium.Quaternion.fromHeadingPitchRoll(window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0)),
+  // }
+})
+
+tc.addTrack(track)
+
+
 const schemeStart = (item) => {
   emit('closePanel')
   clearAll()
 
-  window.$viewer.flyToPosition(new DC.Position(item.onePointPosition.lng, item.onePointPosition.lat, 400, 0, -90, 0), () => {
-    let oneCenter = DC.Position.fromObject(item.onePointPosition)
-    let oneCircle = new DC.Circle(oneCenter, 20)
-    oneCircle.setStyle({
-      material: new DC.CircleWaveMaterialProperty({
-        color: DC.Color.RED.withAlpha(0.9),
-        speed: 20,
-        count: 5,
-        gradient: 0.5
+  if (item.showModel) {
+    window.$viewer.flyToPosition("115.10587903,27.28374884,400,0,-90", () => {
+      track.setModel(VITE_APP_BASE + 'gltf/111.gltf', {
+        show: true,
+        scale: 0.005,
+        color: DC.Color.RED,
+        // nodeTransformations: {
+        //   rotation: window.$Cesium.Quaternion.fromHeadingPitchRoll(window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0)),
+        // }
+      })
+
+      tc.play()
+      tc.viewTrack(track, {
+        mode: '2',
+        pitch: -90,
+        range: 400
       })
     })
-    dynamicVectorLayer.addOverlay(oneCircle)
+  }
 
-    let oneCentent = new DC.DivIcon(
-      new DC.Position(item.onePointPosition.lng, item.onePointPosition.lat, 70),
-      `<div class="dynamic-map-popup">
+  timeOne = setTimeout(() => {
+    function oneLoad () {
+      let oneCenter = DC.Position.fromObject(item.onePointPosition)
+      let oneCircle = new DC.Circle(oneCenter, 20)
+      oneCircle.setStyle({
+        material: new DC.CircleWaveMaterialProperty({
+          color: DC.Color.RED.withAlpha(0.9),
+          speed: 20,
+          count: 5,
+          gradient: 0.5
+        })
+      })
+      dynamicVectorLayer.addOverlay(oneCircle)
+
+      let oneCentent = new DC.DivIcon(
+        new DC.Position(item.onePointPosition.lng, item.onePointPosition.lat, 70),
+        `<div class="dynamic-map-popup">
           <div class="content-wrap">
             <div class="content">
               <p>${item.oneCentent}</p>
@@ -184,10 +259,18 @@
               </div>
               <div class="arrow"></div>
               </div>`
-      // <p>特征污染物:${item.specificPollutant}</p>
-    )
-    dynamicHtmlLayer.addOverlay(oneCentent)
-  }, 3)
+        // <p>特征污染物:${item.specificPollutant}</p>
+      )
+      dynamicHtmlLayer.addOverlay(oneCentent)
+    }
+    if (item.showModel) {
+      oneLoad()
+    } else {
+      window.$viewer.flyToPosition(new DC.Position(item.onePointPosition.lng, item.onePointPosition.lat, 400, 0, -90, 0), () => {
+        oneLoad()
+      }, 3)
+    }
+  }, item.onetime)
 
   item.linePosition && (lineTime = setTimeout(() => {
     let polyline = new DC.Polyline(item.linePosition)
@@ -333,6 +416,15 @@
   timeFour && (clearTimeout(timeFour), timeFour = null)
   timeFive && (clearTimeout(timeFive), timeFive = null)
 
+  track.setModel(VITE_APP_BASE + 'gltf/111.gltf', {
+    show: false,
+    scale: 0.005,
+    color: DC.Color.RED,
+    // nodeTransformations: {
+    //   rotation: window.$Cesium.Quaternion.fromHeadingPitchRoll(window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0), window.$Cesium.Math.toRadians(0)),
+    // }
+  })
+
   dynamicVectorLayer.clear()
   dynamicHtmlLayer.clear()
   dynamicLineVectorLayer.clear()
@@ -341,6 +433,7 @@
 onUnmounted(() => {
   clearAll()
 
+  tc.clear()
   dynamicVectorLayer && window.$viewer.removeLayer(dynamicVectorLayer)
   dynamicHtmlLayer && window.$viewer.removeLayer(dynamicHtmlLayer)
   dynamicLineVectorLayer && window.$viewer.removeLayer(dynamicLineVectorLayer)

--
Gitblit v1.9.3