| | |
| | | <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', |
| | |
| | | ], |
| | | }; |
| | | }, |
| | | 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) => {} |
| | | ); |
| | | }, |
| | | }, |
| | | 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> |