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