From 2d90fa3dc99fced159d0bc76939fd9b88e6aafe1 Mon Sep 17 00:00:00 2001
From: wangyawei <1796609990@qq.com>
Date: 星期五, 18 四月 2025 14:23:28 +0800
Subject: [PATCH] 接入视频流

---
 src/components/tools/LayerTree.vue |  331 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 180 insertions(+), 151 deletions(-)

diff --git a/src/components/tools/LayerTree.vue b/src/components/tools/LayerTree.vue
index 5955992..293fbfd 100644
--- a/src/components/tools/LayerTree.vue
+++ b/src/components/tools/LayerTree.vue
@@ -1,22 +1,29 @@
 <template>
   <div class="layer-tree">
+    <<<<<<< HEAD <el-tree ref="treeRef" style="max-width: 600px" show-checkbox node-key="label" :default-checked-keys="defaultSelectedKeys" @check-change="handleCheckChange" :data="treeData" />
+    =======
     <el-tree ref="treeRef" style="max-width: 600px" show-checkbox node-key="label" :default-checked-keys="defaultSelectedKeys" @check-change="handleCheckChange" :data="treeData" />
+    >>>>>>> f82eb01fe65e513fb43342db0e25cafa0e0d2db8
   </div>
 </template>
 
 <script setup>
-import { ref, onMounted, onBeforeUnmount, watch, onUnmounted } from "vue"
-import { createPoint, removeEntities, addTileset } from "@/utils/map"
-import { deviceDictList, getDictName } from "@/constant/dict.js"
-import { useRoute } from "vue-router"
-import { loadAreaPolygon, clearAreaPolygon } from '@/utils/area'
-import { checkedKeys } from '@/store/index'
-import { getDuanMainData } from '@/api/index.js'
-const route = useRoute()
+import { ref, onMounted, onBeforeUnmount, watch, onUnmounted } from "vue";
+import { createPoint, removeEntities, addTileset } from "@/utils/map";
+import { deviceDictList, getDictName } from "@/constant/dict.js";
+import { useRoute } from "vue-router";
+import { loadAreaPolygon, clearAreaPolygon } from "@/utils/area";
+import { checkedKeys } from "@/store/index";
+import { getDuanMainData } from "@/api/index.js";
+const route = useRoute();
 const treeData = ref([
   {
     label: "涓夌淮鏈嶅姟",
-    children: [{ label: "妯″瀷鏁版嵁" }, { label: "鍦板舰鏁版嵁" }, { label: "褰卞儚鏁版嵁" }],
+    children: [
+      { label: "妯″瀷鏁版嵁" },
+      { label: "鍦板舰鏁版嵁" },
+      { label: "褰卞儚鏁版嵁" },
+    ],
   },
   {
     label: "鍥惧眰鏁版嵁",
@@ -41,40 +48,39 @@
       },
     ],
   },
-])
-const treeRef = ref(null)
-const treeMap = new Map()
-const defaultSelectedKeys = ref(["妯″瀷鏁版嵁", "褰卞儚鏁版嵁", "鍦板舰鏁版嵁"])
+]);
+const treeRef = ref(null);
+const treeMap = new Map();
+const defaultSelectedKeys = ref(["妯″瀷鏁版嵁", "褰卞儚鏁版嵁", "鍦板舰鏁版嵁"]);
 function handleCheckChange (data, checked, indeterminate) {
-  const label = data.label
-  const list = treeMap.get(label)
+  const label = data.label;
+  const list = treeMap.get(label);
   if (list) {
-    toggleLayerVisible(label, checked)
-    return
+    toggleLayerVisible(label, checked);
+    return;
   }
   switch (label) {
     case "妯″瀷鏁版嵁":
-      list.show = checked
-      break
+      list.show = checked;
+      break;
     case "鍖椾含甯傞殣鎮g偣":
-      console.log("鍖椾含甯傞殣鎮g偣", checked, indeterminate)
-      break
+      console.log("鍖椾含甯傞殣鎮g偣", checked, indeterminate);
+      break;
     case "瀛欒儭娌熼殣鎮g偣":
-      console.log("瀛欒儭娌熼殣鎮g偣", checked, indeterminate)
-      break
+      console.log("瀛欒儭娌熼殣鎮g偣", checked, indeterminate);
+      break;
     case "娉ョ煶娴侀殣鎮g偣闈㈡暟鎹�":
-      console.log("娉ョ煶娴侀殣鎮g偣闈㈡暟鎹�", checked, indeterminate)
-      break
+      console.log("娉ョ煶娴侀殣鎮g偣闈㈡暟鎹�", checked, indeterminate);
+      break;
     case "缁煎悎鐩戞祴璁惧淇℃伅":
-      console.log("缁煎悎鐩戞祴璁惧淇℃伅", checked, indeterminate)
-      break
+      console.log("缁煎悎鐩戞祴璁惧淇℃伅", checked, indeterminate);
+      break;
     case "瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�":
-      console.log("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", checked, indeterminate)
-      break
+      console.log("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", checked, indeterminate);
+      break;
     case "閬块櫓鐐�":
-      addTetrahedron()
-      break
-
+      addTetrahedron();
+      break;
   }
 }
 function initMap () {
@@ -92,6 +98,11 @@
     sourceType: "ctb",
     url: "http://106.120.22.26:9103/gisserver/ctsserver/llmbdem",
   })
+  // let TerrainLayer = earthCtrl.factory.createTerrainLayer({
+  //   sourceType: "ctb",
+  //   url: "https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405",
+  //   requestVertexNormals: true,
+  // });
   // treeMap.set("褰卞儚鏁版嵁", ImageryLayer)
   treeMap.set("鍦板舰鏁版嵁", TerrainLayer)
 }
@@ -257,23 +268,23 @@
     latitude: 40.533623,
     longitude: 116.602406,
   },
-])
+]);
 
-function initDevicePoint () {
-  let list = []
+function initDevicePoint() {
+  let list = [];
 
-  devicetList.value.forEach(item => {
-    item.type = getDictName(deviceDictList, item.dictDeviceType)
-    item.name = item.type
-    item.id = item.deviceId
-    item.className = "device"
-    item.showLabel = true
-    const entity = createPoint(item)
-    entity.show = false
+  devicetList.value.forEach((item) => {
+    item.type = getDictName(deviceDictList, item.dictDeviceType);
+    item.name = item.type;
+    item.id = item.deviceId;
+    item.className = "device";
+    item.showLabel = true;
+    const entity = createPoint(item);
+    entity.show = false;
 
-    list.push(entity)
-  })
-  treeMap.set("缁煎悎鐩戞祴璁惧淇℃伅", list)
+    list.push(entity);
+  });
+  treeMap.set("缁煎悎鐩戞祴璁惧淇℃伅", list);
 }
 
 const districtList = ref([
@@ -301,7 +312,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "灏瑰瑗挎矡灏瑰缓鐕曞灞嬪悗宕╁闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -352,7 +364,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "娌宠タ浜庡嚖鑻卞灞嬪悗宕╁闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -403,7 +416,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "鍗楁灏忎笢娌熸偿鐭虫祦闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡,绔嬭绀虹墝",
@@ -454,7 +468,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "澶х獞娌熸偿鐭虫祦闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "宸茬洃娴嬨�佸凡娌荤悊",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -505,7 +520,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "澶т笢娌熸偿鐭虫祦闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "宸叉不鐞�",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉�",
@@ -556,8 +572,10 @@
     monitor: "",
     monitorAdvice: "",
     name: "灏瑰瑗挎矡娉ョ煶娴侀殣鎮g偣",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
-    preventionDes: "宸茬洃娴嬶紱鐏惧浣撳彉鍖栵細4澶勫潯绉墿鍨锛屽爢绉嚦鍧¤剼锛屾柟閲忕害20m鲁銆�",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    preventionDes:
+      "宸茬洃娴嬶紱鐏惧浣撳彉鍖栵細4澶勫潯绉墿鍨锛屽爢绉嚦鍧¤剼锛屾柟閲忕害20m鲁銆�",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉�",
     preventionUnit: "涔¢晣",
@@ -607,7 +625,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "鍖楀ぇ鍦拌タ娲煎瓙娌熸偿鐭虫祦闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "娌熷彛姝e鎴垮眿锛岄檷闆ㄦ椂鍑烘按閲忓ぇ锛屽缓璁不鐞嗭紝姹涙湡鍔犲己宸℃煡",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -658,7 +677,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "鑼冨搴勭帇绉�鑾插灞嬪悗宕╁闅愭偅鐐�",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "杈瑰潯杈冮櫋锛岄『鍚戝博灞傦紝鎴垮眿闈犺繎鍧¤剼锛屽缓璁敖蹇不鐞�",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -709,7 +729,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "涓変憨鍦拌寖蹇犵敯瀹跺眿鍚庡穿濉岄殣鎮g偣",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝鏇存崲璀︾ず鐗�",
@@ -760,8 +781,10 @@
     monitor: "",
     monitorAdvice: "",
     name: "浜庡瑗挎矡娉ョ煶娴侀殣鎮g偣",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
-    preventionDes: "宸茬洃娴嬶紝2018鏉戝凡娌荤悊锛涙矡鍙e爢绉墖鏄庢樉锛屾瀵规埧灞嬶紝寤鸿姹涙湡鍔犲己宸℃煡",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    preventionDes:
+      "宸茬洃娴嬶紝2018鏉戝凡娌荤悊锛涙矡鍙e爢绉墖鏄庢樉锛屾瀵规埧灞嬶紝寤鸿姹涙湡鍔犲己宸℃煡",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉�",
     preventionUnit: "涔¢晣",
@@ -811,7 +834,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "妞存爲搴曚笅涓滄矡娉ョ煶娴侀殣鎮g偣",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "宸叉不鐞嗭細濞佽儊瀵硅薄閲嶅锛氫笌110116030015閲嶅5鎴�11浜�",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡锛岄璀﹁浆绉伙紝绔嬭绀虹墝",
@@ -862,7 +886,8 @@
     monitor: "",
     monitorAdvice: "",
     name: "娌充笢鍗楁矡娉ョ煶娴侀殣鎮g偣",
-    number: "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
+    number:
+      "13716108909,13716029391,13716291714,13716191943,13716427398,13124792612",
     preventionDes: "宸茬洃娴�",
     preventionLevel: "",
     preventionPlan: "瀹氭湡宸℃煡,绔嬭绀虹墝",
@@ -889,40 +914,39 @@
     volumePotential: "",
     width: 0,
   },
-])
+]);
 
-function initDistrictPoint () {
-  let list = []
-  districtList.value.forEach(item => {
-    item.showBillboard = true
-    item.className = "district"
-    item.type = '娉ョ煶娴�'
-    const entity = createPoint(item)
-    entity.show = false
-    list.push(entity)
-  })
-  treeMap.set("瀛欒儭娌熼殣鎮g偣", list)
+function initDistrictPoint() {
+  let list = [];
+  districtList.value.forEach((item) => {
+    item.showBillboard = true;
+    item.className = "district";
+    item.type = "娉ョ煶娴�";
+    const entity = createPoint(item);
+    entity.show = false;
+    list.push(entity);
+  });
+  treeMap.set("瀛欒儭娌熼殣鎮g偣", list);
 }
 
+let divPointList = [];
 
-let divPointList = []
+function initDuanmianPoint() {
+  getDuanMainData().then((res) => {
+    const duanmianList = res.data;
+    const list = [];
+    duanmianList.forEach((item) => {
+      item.id = item.id + item.alias;
+      item.name = item.alias;
+      item.longitude = item.lon;
+      item.latitude = item.lat;
+      item.showBillboard = false;
+      item.className = "district";
 
-function initDuanmianPoint () {
-  getDuanMainData().then(res => {
-    const duanmianList = res.data
-    const list = []
-    duanmianList.forEach(item => {
-      item.id = item.id + item.alias
-      item.name = item.alias
-      item.longitude = item.lon
-      item.latitude = item.lat
-      item.showBillboard = false
-      item.className = "district"
-
-      const entity = createPoint(item)
-      entity.show = false
-      list.push(entity)
-      return
+      const entity = createPoint(item);
+      entity.show = false;
+      list.push(entity);
+      return;
       const divPoint = earthCtrl.factory.createDivPoint(
         item.alias,
         { lon: longitude, lat: latitude },
@@ -937,26 +961,23 @@
           near: 0,
           far: 500000,
         }
-      )
-      divPoint.item.show = false
-      console.log(divPoint)
+      );
+      divPoint.item.show = false;
+      console.log(divPoint);
 
-      divPointList.push(divPoint.item)
-    })
-    treeMap.set("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", list)
-  })
-
+  divPointList.push(divPoint.item);
+});
+treeMap.set("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", list);
+  });
 }
 
-function addTetrahedron (visible) {
-  const emergencyAreaList = []
+function addTetrahedron(visible) {
+  const emergencyAreaList = [];
 
-  loadAreaPolygon("/json/emergency_area.geojson", true).then(entities => {
-    emergencyAreaList.push(...entities)
-  })
+  loadAreaPolygon("/json/emergency_area.geojson", true).then((entities) => {
+    emergencyAreaList.push(...entities);
+  });
   // console.log('polygon', polygon);
-
-
 
   let list = [
     {
@@ -977,8 +998,8 @@
       latitude: 40.558199,
       altitude: 528,
     },
-  ]
-  list.forEach(item => {
+  ];
+  list.forEach((item) => {
     let point = earthCtrl.factory.addTetrahedron({
       position: {
         lon: item.longitude,
@@ -987,70 +1008,78 @@
       },
       multiple: 1.0,
       scale: new SmartEarth.Cesium.Cartesian3(20, 20, 20),
-    })
-    console.log("point", point)
-    emergencyAreaList.push(point)
-
-  })
-  treeMap.set("閬块櫓鐐�", emergencyAreaList)
-
+    });
+    console.log("point", point);
+    emergencyAreaList.push(point);
+  });
+  treeMap.set("閬块櫓鐐�", emergencyAreaList);
 }
-function toggleLayerVisible (name, checked) {
-  const entityList = treeMap.get(name)
+function toggleLayerVisible(name, checked) {
+  const entityList = treeMap.get(name);
   if (Array.isArray(entityList) && entityList.length > 0) {
-    entityList.forEach(entity => {
-      entity.show = checked
-    })
+    entityList.forEach((entity) => {
+      entity.show = checked;
+    });
   }
-  treeMap.set(name, entityList)
+  treeMap.set(name, entityList);
 }
 
-function getData () {
-  initDevicePoint()
-  initDistrictPoint()
-  initDuanmianPoint()
+function getData() {
+  initDevicePoint();
+  initDistrictPoint();
+  initDuanmianPoint();
 }
 
 // 閫氳繃 store 浼犻�掗渶瑕侀�変腑鐨刱ey
-watch(() => checkedKeys.value, (keys) => {
-  if (keys && Array.isArray(keys)) {
-    treeRef.value.setCheckedKeys(defaultSelectedKeys.value.concat(keys), true)
+watch(
+  () => checkedKeys.value,
+  (keys) => {
+    if (keys && Array.isArray(keys)) {
+      treeRef.value.setCheckedKeys(
+        defaultSelectedKeys.value.concat(keys),
+        true
+      );
+    }
   }
-})
+);
 
 watch(
   () => route.fullPath,
-  path => {
-    const defaultKeys = defaultSelectedKeys.value
+  (path) => {
+    const defaultKeys = defaultSelectedKeys.value;
     if (path == "/yhgl") {
-      treeRef.value.setCheckedKeys(defaultKeys.concat("瀛欒儭娌熼殣鎮g偣"), true)
-      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", true)
-      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", false)
-      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", false)
-
+      treeRef.value.setCheckedKeys(defaultKeys.concat("瀛欒儭娌熼殣鎮g偣"), true);
+      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", true);
+      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", false);
+      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", false);
     } else if (path == "/zhjc") {
-      treeRef.value.setCheckedKeys(defaultKeys.concat("缁煎悎鐩戞祴璁惧淇℃伅"), true)
-      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", true)
-      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", false)
-      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", false)
+      treeRef.value.setCheckedKeys(
+        defaultKeys.concat("缁煎悎鐩戞祴璁惧淇℃伅"),
+        true
+      );
+      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", true);
+      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", false);
+      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", false);
     } else if (path == "/mnfz") {
-      treeRef.value.setCheckedKeys(defaultKeys.concat("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�"), true)
-      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", true)
-      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", false)
-      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", false)
-
+      treeRef.value.setCheckedKeys(
+        defaultKeys.concat("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�"),
+        true
+      );
+      toggleLayerVisible("瀛欒儭娌熶豢鐪熸爣娉ㄥ湴鐗�", true);
+      toggleLayerVisible("瀛欒儭娌熼殣鎮g偣", false);
+      toggleLayerVisible("缁煎悎鐩戞祴璁惧淇℃伅", false);
     } else {
-      treeRef.value.setCheckedKeys(defaultKeys, true)
+      treeRef.value.setCheckedKeys(defaultKeys, true);
     }
   }
-)
+);
 onMounted(() => {
-  initMap()
-  getData()
-})
+  initMap();
+  getData();
+});
 onUnmounted(() => {
-  viewer.entities.removeAll()
-})
+  viewer.entities.removeAll();
+});
 </script>
 
 <style lang="less" scoped>
@@ -1063,4 +1092,4 @@
   height: 200px;
   z-index: 99;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3