From f82eb01fe65e513fb43342db0e25cafa0e0d2db8 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期五, 18 四月 2025 14:07:12 +0800 Subject: [PATCH] Merge branch 'master' of http://103.135.160.14:9034/r/NslWeb --- src/utils/tools.js | 106 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 66 insertions(+), 40 deletions(-) diff --git a/src/utils/tools.js b/src/utils/tools.js index 6f0a779..a56a9c7 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -23,6 +23,9 @@ elevationTool: null, rainEffect: null, snowEffect: null, // 鏂板闆晥鏋滃疄渚� + regionTerrain: null, + polygonPosition: [], + PolygonArr: [], init(earthCtrl) { this.earthCtrl = earthCtrl; @@ -36,13 +39,13 @@ return new Cesium.Color(r, g, b, 1.0); }, // 娓呴櫎澶╂皵鐗规晥 - delRain(){ + delRain() { if (this.rainEffect) { this.rainEffect.destroy() this.rainEffect = null } }, - delSnow(){ + delSnow() { if (this.snowEffect) { this.snowEffect.destroy(); this.snowEffect = null; @@ -87,58 +90,81 @@ this.snowEffect.show(show); } }, - // 鍧″害鍒嗘瀽 - pdfx(option) { - 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) - this.elevationTool.setContourColor(option.color); - this.elevationTool.render(); - console.log(this.elevationTool, 'eleelelelelelelel') - }, - // 鍧″悜绠ご - pxjt(colors, angles) { - this.slopeArrow = earthCtrl.factory.createSlopeArrow({}); - this.slopeArrow.setColorsAndAngles(colors, angles); + // 鍖哄煙鍒掑垎宸ュ叿 + hfqy() { + this.regionTerrain = earthCtrl.factory.createRegionTerrain({}); + this.polygonPosition = []; - // 鍒涘缓缁樺埗宸ュ叿 - const drawTool = earthCtrl.shapeTool.createDrawShapeTool((e) => { + const draw = earthCtrl.shapeTool.createDrawShapeTool((e) => { const polygonI = []; - const polygonPosition = []; for (const i of e.result) { const ellipsoid = earthCtrl.coreMap.scene.globe.ellipsoid; const cartographic = ellipsoid.cartesianToCartographic(i); - - const lon = Cesium.Math.toDegrees(cartographic.longitude); - const lat = Cesium.Math.toDegrees(cartographic.latitude); // 绾害 + const lon = SmartEarth.Cesium.Math.toDegrees( + cartographic.longitude + ); // 缁忓害 + const lat = SmartEarth.Cesium.Math.toDegrees(cartographic.latitude); // 绾害 polygonI.push(lon, lat, 0); - polygonPosition.push(lon, lat); + this.polygonPosition.push(lon, lat); } - const PolygonArr = []; - PolygonArr.push({ + this.PolygonArr.push({ id: earthCtrl.factory.createUUID(), polygon: polygonI, }); - - // 娓呴櫎缁樺埗宸ュ叿 - drawTool.removeFromMap(); - // 璁剧疆鍧″害绠ご鐨勪綅缃拰绫诲瀷 - this.slopeArrow.setPositions(polygonPosition); - this.slopeArrow.setSlopeType(1); - this.slopeArrow.setRegionEnabled(true); - console.log(this.slopeArrow, 'slope') + draw.removeFromMap(); + this.regionTerrain.setPositions(this.polygonPosition); + this.regionTerrain.setRegionEnabled(true); }); }, - // 鍏抽棴鍧″悜绠ご - gbpxjt() { + // 鍧″害鍒嗘瀽 + pdfx() { + if (this.regionTerrain) { + console.log('鍧″害鍒嗘瀽'); + this.clearPreviousAnalysis(); // 鍏堟竻闄や箣鍓嶇殑鍒嗘瀽 + this.regionTerrain.setType("slope"); + this.regionTerrain.update(); + } + }, + + // 鍧″悜绠ご + pxjt(colors, angles) { + if (this.regionTerrain) { + this.clearPreviousAnalysis(); // 鍏堟竻闄や箣鍓嶇殑鍒嗘瀽 + this.regionTerrain.setType("aspect"); + this.regionTerrain.update(); + } + + this.slopeArrow = earthCtrl.factory.createSlopeArrow({}); + this.slopeArrow.setColorsAndAngles(colors, angles); + this.slopeArrow.setSlopeType(1); + }, + + // 绛夐珮绾垮垎鏋� + 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(); + }, + + // 娓呴櫎涔嬪墠鐨勫垎鏋愶紙鍧″害銆佸潯鍚戙�佺瓑楂樼嚎锛� + clearPreviousAnalysis() { + if (this.regionTerrain) { + this.regionTerrain.setType(""); + this.regionTerrain.update(); + } + if (this.slopeArrow) { this.slopeArrow.setSlopeType(0); + // this.slopeArrow = null; + } + + if (this.elevationTool) { + this.elevationTool = null; } }, // 鏍囩粯 -- Gitblit v1.9.3