From 2d90fa3dc99fced159d0bc76939fd9b88e6aafe1 Mon Sep 17 00:00:00 2001 From: wangyawei <1796609990@qq.com> Date: 星期五, 18 四月 2025 14:23:28 +0800 Subject: [PATCH] 接入视频流 --- src/utils/tools.js | 108 +++++++++++++++++++++++++++--------------------------- 1 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/utils/tools.js b/src/utils/tools.js index 6b7c835..a56a9c7 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -25,6 +25,7 @@ snowEffect: null, // 鏂板闆晥鏋滃疄渚� regionTerrain: null, polygonPosition: [], + PolygonArr: [], init(earthCtrl) { this.earthCtrl = earthCtrl; @@ -91,81 +92,80 @@ }, // 鍖哄煙鍒掑垎宸ュ叿 hfqy() { - // 鍒濆鍖栧尯鍩熷湴褰� this.regionTerrain = earthCtrl.factory.createRegionTerrain({}); this.polygonPosition = []; - // 鍒涘缓缁樺埗宸ュ叿 - const drawTool = earthCtrl.shapeTool.createDrawShapeTool((e) => { - try { - if (!e || !e.result) { - throw new Error('Invalid drawing result'); - } - - // 杞崲鍧愭爣骞跺瓨鍌� - const polygonI = []; - for (const point of e.result) { - const cartographic = earthCtrl.coreMap.scene.globe.ellipsoid.cartesianToCartographic(point); - const lon = Cesium.Math.toDegrees(cartographic.longitude); - const lat = Cesium.Math.toDegrees(cartographic.latitude); - - polygonI.push(lon, lat, 0); - this.polygonPosition.push(lon, lat); - } - - // 璁剧疆鍖哄煙鍦板舰 - this.regionTerrain.setPositions(this.polygonPosition); - this.regionTerrain.setRegionEnabled(true); - - // 娓呴櫎缁樺埗宸ュ叿 - drawTool.removeFromMap(); - } catch (error) { - console.error('Error during region drawing:', error); - drawTool.removeFromMap(); + const draw = earthCtrl.shapeTool.createDrawShapeTool((e) => { + const polygonI = []; + for (const i of e.result) { + const ellipsoid = earthCtrl.coreMap.scene.globe.ellipsoid; + const cartographic = ellipsoid.cartesianToCartographic(i); + const lon = SmartEarth.Cesium.Math.toDegrees( + cartographic.longitude + ); // 缁忓害 + const lat = SmartEarth.Cesium.Math.toDegrees(cartographic.latitude); // 绾害 + polygonI.push(lon, lat, 0); + this.polygonPosition.push(lon, lat); } + this.PolygonArr.push({ + id: earthCtrl.factory.createUUID(), + polygon: polygonI, + }); + draw.removeFromMap(); + this.regionTerrain.setPositions(this.polygonPosition); + this.regionTerrain.setRegionEnabled(true); }); - - return drawTool; }, + // 鍧″害鍒嗘瀽 + pdfx() { + if (this.regionTerrain) { + console.log('鍧″害鍒嗘瀽'); + this.clearPreviousAnalysis(); // 鍏堟竻闄や箣鍓嶇殑鍒嗘瀽 + this.regionTerrain.setType("slope"); + this.regionTerrain.update(); + } + }, + // 鍧″悜绠ご pxjt(colors, angles) { - this.hfqy() + if (this.regionTerrain) { + this.clearPreviousAnalysis(); // 鍏堟竻闄や箣鍓嶇殑鍒嗘瀽 + this.regionTerrain.setType("aspect"); + this.regionTerrain.update(); + } + this.slopeArrow = earthCtrl.factory.createSlopeArrow({}); this.slopeArrow.setColorsAndAngles(colors, angles); - this.regionTerrain.setPositions(this.polygonPosition); - this.regionTerrain.setRegionEnabled(true); this.slopeArrow.setSlopeType(1); }, - // 鍧″害鍒嗘瀽 - pdfx(option) { - this.hfqy() - this.elevationTool = new SmartEarth.ElevationTool(earthCtrl) - if (option.terrainRender == '1') { - this.elevationTool.type = 'slope' - } else { - this.elevationTool.type = 'none' - } - this.elevationTool.tf = option.contourLines - this.elevationTool.setSpacing(option.spacing) - this.elevationTool.setWidth(option.lineWidth) + // 绛夐珮绾垮垎鏋� + dgxfx(option) { + this.clearPreviousAnalysis(); // 鍏堟竻闄や箣鍓嶇殑鍒嗘瀽 + this.hfqy(); + this.elevationTool = new SmartEarth.ElevationTool(earthCtrl); + this.elevationTool.tf = option.contourLines; + this.elevationTool.setSpacing(option.spacing); + this.elevationTool.setWidth(option.lineWidth); this.elevationTool.setContourColor(option.color); this.elevationTool.render(); }, - // 娓呯悊鎵�鏈夊垎鏋愬伐鍏� - cleanupAnalysisTools() { - // 鍧″悜绠ご + // 娓呴櫎涔嬪墠鐨勫垎鏋愶紙鍧″害銆佸潯鍚戙�佺瓑楂樼嚎锛� + clearPreviousAnalysis() { + if (this.regionTerrain) { + this.regionTerrain.setType(""); + this.regionTerrain.update(); + } + if (this.slopeArrow) { this.slopeArrow.setSlopeType(0); - this.slopeArrow = null; + // this.slopeArrow = null; } - // 閫夋嫨鍖哄煙 - if (this.regionTerrain) { - this.regionTerrain.setRegionEnabled(false); - this.regionTerrain = null; + + if (this.elevationTool) { + this.elevationTool = null; } - this.polygonPosition = []; }, // 鏍囩粯 CreateLabel(pic, show) { -- Gitblit v1.9.3