From 9ce29c536ba2a636416c618761985e2b9a711ee6 Mon Sep 17 00:00:00 2001 From: lxl <lixuliang_hd@126.com> Date: 星期四, 27 十月 2022 14:17:45 +0800 Subject: [PATCH] user --- src/views/Synthesis/analyse.vue | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 252 insertions(+), 9 deletions(-) diff --git a/src/views/Synthesis/analyse.vue b/src/views/Synthesis/analyse.vue index e676895..30f5519 100644 --- a/src/views/Synthesis/analyse.vue +++ b/src/views/Synthesis/analyse.vue @@ -12,15 +12,26 @@ <div class="div_li">{{ $t(item.name) }}</div> </li> </ul> + <mapinfo ref="mapinfo" /> </div> </template> <script> +import $ from 'jquery'; +// 娴嬮噺-淇℃伅寮圭獥 +import mapinfo from '../Tools/mapinfo.vue'; export default { + components: { + mapinfo, + }, data() { return { + changeAnalsyFlag: null, isoline: null, isolineFlag: false, + isslopeFlag: false, + isslopeType: null, + dxpmIndex: null, itemsOne: [ { id: '1', @@ -65,25 +76,257 @@ ], }; }, - mounted() { - if (this.isoline == null) { - this.isoline = new SmartEarth.ElevationTool(sgworld); - } - }, + methods: { changeAnalsy(res) { + var that = this; switch (res.id) { case '1': - this.isolineFlag = !this.isolineFlag; - this.isoline.tf = this.isolineFlag; - this.isoline.render(); + that.isolineFlag = !that.isolineFlag; + elevationTool.tf = that.isolineFlag; + elevationTool.render(); break; case '2': - elevationTool.type = 'slope'; + that.isslopeFlag = !that.isslopeFlag; + if (that.isslopeFlag == true) { + elevationTool.type = 'slope'; + } else { + elevationTool.type = 'none'; + } elevationTool.render(); + break; + case '3': + var value = { + name: 'Analysis', + id: 3, + }; + this.$bus.$emit('mapChangeBox', value); + // var jsonurl = + // 'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns?start=' + + // '116.0867468497,39.937314280233' + + // '&end=' + + // '116.0860003269,39.936289981725' + + // '&propertyName=Shape&tolerance=500&request=FindPath&format=json'; + // $.ajax({ + // url: jsonurl, + // async: false, + // type: 'GET', + // dataType: 'json', + // contentType: 'application/json;charset=utf-8', + // success: (data) => { + // data.features.forEach((e) => { + // if (e.geometry.type == 'LineString') { + // //this.executeFly3D(e.geometry.coordinates); + // this.executeFly3D(e.geometry.coordinates); + // } + // }); + // }, + // }); + break; + case '4': + if (window.AnalysisDXPM) { + this.clear(res.id); + } else { + this.addterrainSectionAnalysis(); + } + break; + case '5': + if (window.AnalysisFlood) { + this.clear(res.id); + } else { + this.addAnalysisFlood(); + } + break; + case '6': + var that = this; + var volumetricMeasurementTool = + sgworld.Creator.createVolumetricMeasureTool(); + volumetricMeasurementTool.startDrawing( + { ...this.colorAll, onlyTerrain: false }, + 'auto', + (data) => { + if (volumetricMeasurementTool.popupData) { + volumetricMeasurementTool.popupData.value = `濉柟锛�${ + data.volume.fill.toFixed(4) + data.unit.fill + }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`; + } else { + data.id = sgworld.Core.getuid(); + this.measureData.set(data.id, volumetricMeasurementTool); + let popupData = that.openMeasureResultInfo('浣撶Н鏂归噺', data); + volumetricMeasurementTool.popupData = popupData; + } + } + ); + break; + case '7': + window.model = null; + var url = + 'http://183.162.245.49:8099/pcdata/JC_MAX_MX/SN/tileset.json'; + model = sgworld.Creator.create3DTilesets( + '', + url, + { height: 670 }, + {}, + '0', + true, + (data) => { + sgworld.Navigate.flyToObj(data); + } + ); + setTimeout(() => { + model.clippingModel({ + direction: 'x', + }); + }, 5000); + break; + case '8': + if (openStreetMap.item.show == false) { + openStreetMap.item.show = true; + sgworld.Analysis.createCurtainContrast(0, 1); + } else { + openStreetMap.item.show = false; + sgworld.Analysis.clearCurtainContrast(); + } break; } }, + clear(res) { + switch (res) { + case '4': + layer.close(this.dxpmIndex); + this.dxpmIndex = undefined; + if (window.AnalysisDXPM) { + window.AnalysisDXPM.flyPoint && + Viewer.entities.remove(window.AnalysisDXPM.flyPoint); + window.AnalysisDXPM && window.AnalysisDXPM.deleteObject(); + window.AnalysisDXPM = undefined; + } + break; + case '5': + window.AnalysisFlood && window.AnalysisFlood.endWater(); + window.AnalysisFlood = undefined; + + break; + } + }, + openMeasureResultInfo(name, data) { + let info = ''; + switch (name) { + case '姘村钩璺濈': + case '绌洪棿璺濈': + info = '鎬婚暱搴︼細' + data.distance[data.distance.length - 1]; + break; + case '娴锋嫈楂樺害': + info = '娴锋嫈锛�' + data.height; + break; + case '鍨傜洿楂樺害': + info = `${data.gddistance}<br>${data.kjdistance}<br>${data.spdistance}`; + break; + case '琛ㄩ潰闈㈢Н': + case '骞抽潰闈㈢Н': + info = data.mj; + break; + case '瑙掑害': + data.labels.forEach((label) => { + info += label.label.text.getValue() + '<br>'; + }); + break; + case '浣撶Н鏂归噺': + info = `濉柟锛�${ + data.volume.fill.toFixed(4) + data.unit.fill + }<br>鎸栨柟锛�${data.volume.dig.toFixed(4) + data.unit.dig}`; + break; + } + return ( + this.$refs && + this.$refs.mapinfo && + this.$refs.mapinfo.open(name, info, { + close: () => { + // 娓呴櫎娴嬮噺 + this.clearMeasure(data.id); + }, + }) + ); + }, + clearMeasure(id) { + if (id) { + let data = this.measureData.get(id); + data && data.deleteObject && data.deleteObject(); + // 浣撶Н鏂归噺 + data && data.cleanUp && data.cleanUp(); + this.measureData.delete(id); + } else { + this.measureData.forEach((data) => { + data.deleteObject && data.deleteObject(); + // 浣撶Н鏂归噺 + data.cleanUp && data.cleanUp(); + }); + this.measureData.clear(); + } + }, + addterrainSectionAnalysis() { + window.AnalysisDXPM = sgworld.Command.execute( + 2, + 6, + { cyjj: 50, objid: 0 }, + (Distance) => { + if (Distance.gcs && Distance.gcs.length) { + window.AnalysisDXPM.analyseData = Distance; + this.dxpmIndex = layer.open({ + type: 2, + title: '鍒嗘瀽缁撴灉', + shade: false, + area: ['80%', '280px'], + offset: 'b', + skin: 'other-class', + content: '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html', + end: () => { + this.dxpmIndex && this.clear('4'); + }, + }); + } else { + //鍓栭潰 + window.AnalysisDXPM && window.AnalysisDXPM.deleteObject(); + } + } + ); + }, + addAnalysisFlood() { + var method = { + pointSelect: true, + spood: 20, + GroupID: 0, + url: '/SmartEarthSDK/Workers/image/waterNormals.jpg', + }; + window.AnalysisFlood = sgworld.Command.execute( + 2, + 2, + method, + (value) => {} + ); + }, + showViewMenu(res) { + if (res.cnName != '鍒嗘瀽') return; + console.log('鍒嗘瀽', res.tag); + }, + }, + created() { + var cover_Id = this.$store.state.syntiesis.menu; + var cover_perms = this.$store.state.permsEntity; + + for (var i = 0; i < cover_perms.length; i++) { + if (cover_perms[i].pid == cover_Id) { + this.showViewMenu(cover_perms[i]); + } + } + }, + mounted() { + this.measureData = new Map(); + this.colorAll = { + point: Cesium.Color.fromCssColorString('#ff0000'), + polyline: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6), + polygon: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6), + }; }, }; </script> -- Gitblit v1.9.3