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 | 124 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 108 insertions(+), 16 deletions(-) diff --git a/src/assets/js/mapSdk/menuManager.js b/src/assets/js/mapSdk/menuManager.js index 4e31acb..c993e80 100644 --- a/src/assets/js/mapSdk/menuManager.js +++ b/src/assets/js/mapSdk/menuManager.js @@ -1,8 +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'), @@ -62,6 +68,70 @@ 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) { @@ -74,27 +144,14 @@ this.particle = null; return; } + this.handlerClick(res.id); - 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); - that.setCreateFireAnalysis(lng, lat, alt); - } - handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); - }, Cesium.ScreenSpaceEventType.LEFT_CLICK); break; case 'a3': if (this.AnalysisFlood) { this.AnalysisFlood.endWater(); this.AnalysisFlood = undefined; - return + return; } var url = SmartEarthRootUrl + 'Workers/image/33.gif'; const method = { @@ -104,6 +161,22 @@ 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; @@ -189,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) => {}); -- Gitblit v1.9.3