From d4a3ca549f8755c2f87442c27217c3be39cab5cc Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期三, 14 八月 2024 16:00:10 +0800 Subject: [PATCH] 设备维修 --- src/assets/js/mapSdk/menuManager.js | 149 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 147 insertions(+), 2 deletions(-) diff --git a/src/assets/js/mapSdk/menuManager.js b/src/assets/js/mapSdk/menuManager.js index caf3ce7..c993e80 100644 --- a/src/assets/js/mapSdk/menuManager.js +++ b/src/assets/js/mapSdk/menuManager.js @@ -1,6 +1,14 @@ +import { time } from 'echarts'; +import mapServer from './mapServe'; + const menuManager = { pid: null, pointFly: null, + particle: null, + AnalysisFlood: null, + modelLayer: null, + regionWeather: null, + regionWeather: null, colorAll: { point: SmartEarth.Cesium.Color.fromCssColorString('#ff0000'), polyline: SmartEarth.Cesium.Color.fromCssColorString('#ffff0050'), @@ -60,16 +68,134 @@ break; } }, + handlerClick(res) { + var that = this; + var handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); + handler.setInputAction((event) => { + let cartesian = Viewer.camera.pickEllipsoid(event.position); + let cartographic = Cesium.Cartographic.fromCartesian(cartesian); + + if (cartesian) { + let lng = parseFloat(Cesium.Math.toDegrees(cartographic.longitude)).toFixed(6); // 缁忓害 + let lat = parseFloat(Cesium.Math.toDegrees(cartographic.latitude)).toFixed(6); // 绾害 + var alt = Viewer.camera.positionCartographic.height.toFixed(0); + if (res == 'a2') { + that.setCreateFireAnalysis(lng, lat, alt); + } else if (res == 'a4') { + that.setCreateRainAnalysis(lng, lat, alt); + } else if (res == 'a5') { + that.setCreateSnowAnalysis(lng, lat, alt); + } + } + handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); + }, Cesium.ScreenSpaceEventType.LEFT_CLICK); + }, + getModelLayer() { + const obj = mapServer.layerList.filter((item) => { + if (item.id == 'baseModel') { + return time; + } + }); + if (obj.length <= 0) return; + this.modelLayer = obj[0].layer; + }, + setCreateRainAnalysis(lng, lat, alt) { + this.regionWeather = earthCtrl.factory.createRegionWeather({ + primitive: this.modelLayer.item, + position: new SmartEarth.Cesium.Cartesian3.fromDegrees(lng, lat, 1000), + radius: 1000, + }); + this.regionWeather.enableWeatherType = SmartEarth.Cesium.RegionWeather.TYPE_RAIN; + this.regionWeather.regionAlpha = 0.6; + this.regionWeather.regionGradientDistance = 300; + }, + setCreateSnowAnalysis(lng, lat, alt) { + this.regionWeather = earthCtrl.factory.createRegionWeather({ + primitive: this.modelLayer.item, + position: new SmartEarth.Cesium.Cartesian3.fromDegrees(lng, lat, 1000), + radius: 1000, + }); + this.regionWeather.enableWeatherType = SmartEarth.Cesium.RegionWeather.TYPE_SNOW; + this.regionWeather.regionAlpha = 0.8; + this.regionWeather.regionGradientDistance = 300; + }, + setClearMenuS3() { + if (this.particle) { + this.particle.remove(); + this.particle = null; + } + if (this.AnalysisFlood) { + this.AnalysisFlood.endWater(); + this.AnalysisFlood = undefined; + } + if (this.regionWeather) { + this.regionWeather.enableWeatherType = SmartEarth.Cesium.RegionWeather.TYPE_NONE; + } + }, // 鐏惧绠$悊 setMenuS3(res) { switch (res.id) { case 'a1': return res.name; break; + case 'a2': + if (this.particle) { + this.particle.remove(); + this.particle = null; + return; + } + this.handlerClick(res.id); + + break; + case 'a3': + if (this.AnalysisFlood) { + this.AnalysisFlood.endWater(); + this.AnalysisFlood = undefined; + return; + } + var url = SmartEarthRootUrl + 'Workers/image/33.gif'; + const method = { + pointSelect: true, // rectangle: 'rectangle', + spood: 20, + GroupID: 0, + url: url, + }; + this.AnalysisFlood = earthCtrl.analysis.createSubmergence(method, (value) => {}); + break; + case 'a4': + if (!this.modelLayer) { + this.getModelLayer(); + } + this.handlerClick(res.id); + break; + + case 'a5': + if (!this.modelLayer) { + this.getModelLayer(); + } + this.handlerClick(res.id); + break; + case 'a6': + this.setClearMenuS3(); + break; default: return null; break; } + }, + setCreateFireAnalysis(lon, lat, alt) { + this.particle = earthCtrl.factory.createParticleEffect( + 'flame', + { + x: lon, + y: lat, + z: 0, + }, + { + translation: SmartEarth.Cesium.Cartesian3.fromElements(0, 0, 0), //骞崇Щ + }, + (data) => {} + ); }, //鍥惧眰绠$悊 setMenuS4(res) { @@ -136,7 +262,26 @@ earthCtrl.factory.createSimpleGraphic('label', {}, (entity) => {}); break; case 'a3': - earthCtrl.factory.createSimpleGraphic('polyline', { showSize: false }, (entity) => {}); + earthCtrl.factory.createSimpleGraphic('polyline', { showSize: false }, (entity) => { + + // console.log(entity); + + // const obj = entity.polyline.positions.getValue(); + // var std = []; + // for (var i in obj) { + // var ellipsoid =Viewer.scene.globe.ellipsoid; + + // // 灏嗕笘鐣屽潗鏍囪浆鎹负鍦扮悊鍧愭爣锛圕artographic锛� + // var cartographic = ellipsoid.cartesianToCartographic(obj[i]); + + // // 鑾峰彇缁忕含搴� + // var longitude = Cesium.Math.toDegrees(cartographic.longitude); + // var latitude = Cesium.Math.toDegrees(cartographic.latitude); + // var height = 0; + // std.push([longitude, latitude, height]); + // } + // console.log(std); + }); break; case 'a4': earthCtrl.factory.createSimpleGraphic('rectangle', { showSize: false }, (entity) => {}); @@ -190,7 +335,7 @@ return res.name; break; case 'a2': - return res.name; + earthCtrl.factory.createScreenshot(); break; default: return null; -- Gitblit v1.9.3