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