From 0f0d87ffbe149d47342d2bf5d5e9ae6ce130c901 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 20 十月 2022 09:44:05 +0800 Subject: [PATCH] 综合展示 --- src/views/Synthesis/measurement.vue | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 216 insertions(+), 22 deletions(-) diff --git a/src/views/Synthesis/measurement.vue b/src/views/Synthesis/measurement.vue index 587ffdd..5853343 100644 --- a/src/views/Synthesis/measurement.vue +++ b/src/views/Synthesis/measurement.vue @@ -12,45 +12,239 @@ <div class="div_li">{{ $t(item.name) }}</div> </li> </ul> + <mapinfo ref="mapinfo" /> </div> </template> <script> +// 娴嬮噺-淇℃伅寮圭獥 +import mapinfo from '../Tools/mapinfo.vue'; export default { + components: { mapinfo }, data() { return { + colorAll: {}, + measureData: null, itemsOne: [ { - id: "1", - name: "synthesis.distancemeasure", - class: "g1", + id: '1', + name: 'synthesis.synthobj.m1', + class: 'g1', }, { - id: "2", - name: "synthesis.heightsurve", - class: "g2", + id: '2', + name: 'synthesis.synthobj.m2', + class: 'g2', }, { - id: "3", - name: "synthesis.areasurvey", - class: "g3", + id: '3', + name: 'synthesis.synthobj.m3', + class: 'g3', }, { - id: "4", - name: "synthesis.volummeasure", - class: "g4", + id: '4', + name: 'synthesis.synthobj.m4', + class: 'g4', + }, + { + id: '5', + name: 'synthesis.synthobj.m5', + class: 'g1', + }, + { + id: '6', + name: 'synthesis.synthobj.m6', + class: 'g2', + }, + { + id: '7', + name: 'synthesis.synthobj.m7', + class: 'g3', + }, + { + id: '8', + name: 'synthesis.synthobj.m8', + class: 'g4', }, ], }; }, methods: { - changeMeasure(res) { - var res_val = { - url: "", - name: res.name, - }; - this.$bus.$emit("changetool", res_val); + 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(); + } }, + changeMeasure(res) { + switch (res.id) { + case '1': + var measure = window.sgworld.Command.execute( + 0, + 2, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('姘村钩璺濈', data); + } + ); + break; + case '2': + var measure = window.sgworld.Command.execute( + 0, + 10, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('绌洪棿璺濈', data); + } + ); + break; + case '3': + var measure = window.sgworld.Command.execute( + 1, + 11, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('娴锋嫈楂樺害', data); + } + ); + break; + case '4': + var measure = window.sgworld.Command.execute( + 0, + 5, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('鍨傜洿楂樺害', data); + } + ); + break; + case '5': + var measure = window.sgworld.Command.execute( + 0, + 8, + { + ...this.colorAll, + tin: true, // 鏄惁鏄剧ずtin涓夎缃� + onlyTerrain: false, // 鏄惁鍙祴閲忕簿缁嗗湴褰� + }, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('琛ㄩ潰闈㈢Н', data); + } + ); + break; + case '6': + var measure = window.sgworld.Command.execute( + 0, + 3, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('骞抽潰闈㈢Н', data); + } + ); + break; + case '7': + var volumetricMeasurementTool = + window.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 = window.sgworld.Core.getuid(); + this.measureData.set(data.id, volumetricMeasurementTool); + let popupData = this.openMeasureResultInfo('浣撶Н鏂归噺', data); + volumetricMeasurementTool.popupData = popupData; + } + } + ); + break; + case '8': + var measure = window.sgworld.Command.execute( + 0, + 12, + this.colorAll, + (data) => { + data.id = window.sgworld.Core.getuid(); + this.measureData.set(data.id, measure); + this.openMeasureResultInfo('瑙掑害', data); + } + ); + 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); + }, + }) + ); + }, + }, + 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> @@ -75,18 +269,18 @@ margin: 0px; } .g1 { - background: url("../../assets/img/synthesis/鍥惧眰 31.png") no-repeat center; + background: url('../../assets/img/synthesis/鍥惧眰 31.png') no-repeat center; } .g2 { - background: url("../../assets/img/synthesis/鍥惧眰 31 鎷疯礉.png") no-repeat + background: url('../../assets/img/synthesis/鍥惧眰 31 鎷疯礉.png') no-repeat center; } .g3 { - background: url("../../assets/img/synthesis/鐭╁舰 13 鎷疯礉.png") no-repeat + background: url('../../assets/img/synthesis/鐭╁舰 13 鎷疯礉.png') no-repeat center; } .g4 { - background: url("../../assets/img/synthesis/鍥惧眰 18 鎷疯礉.png") no-repeat + background: url('../../assets/img/synthesis/鍥惧眰 18 鎷疯礉.png') no-repeat center; } .backimge7 { -- Gitblit v1.9.3