From a92fa5ec4d415ccc42f8c3b7eae7d07cc8418889 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 16 二月 2023 16:33:11 +0800
Subject: [PATCH] 1

---
 src/views/Synthesis/LeftMenu.vue |  129 +++++++++++++++++++++++++++++++-----------
 1 files changed, 94 insertions(+), 35 deletions(-)

diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index a229ce9..8a000da 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -47,6 +47,7 @@
   FullScreen,
   ScaleLine,
   Rotate,
+
 } from "ol/control.js"
 import * as turf from '@turf/turf';
 import { geometry } from '@turf/turf';
@@ -354,18 +355,18 @@
             css: 'twoMenu_imge86',
           },
 
-          // {
-          //   id: 'h9',
-          //   label: 'synthesis.import1',
-          //   name: '瀵煎叆SHP',
-          //   css: 'twoMenu_imge85',
-          // },
-          // {
-          //   id: 'h10',
-          //   label: 'synthesis.export1',
-          //   name: '瀵煎嚭SHP',
-          //   css: 'twoMenu_imge86',
-          // },
+          {
+            id: 'h9',
+            label: 'synthesis.import1',
+            name: '瀵煎叆SHP',
+            css: 'twoMenu_imge85',
+          },
+          {
+            id: 'h10',
+            label: 'synthesis.export1',
+            name: '瀵煎嚭SHP',
+            css: 'twoMenu_imge86',
+          },
 
 
           {
@@ -403,20 +404,14 @@
       scaleLine: null,
       Excavation: false,
       entityaLayers: [],
+      isMenuFlag: null,
     };
   },
   methods: {
     //浜岀礆鑿滃崟鐐瑰嚮鍒囨崲
     setChangeTwoMenu(res) {
-      //娓呴櫎缁樺埗鍥惧舰瀵硅薄
-      // sgworld.Creator.SimpleGraphic.clear();
-      if (window.Viewer.scene.primitives.length != null) {
-        window.Viewer.scene.primitives.removeAll();
-      }
-      if (this.$store.state.primitLayer != null) {
-        sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
-        this.$store.state.primitLayer = null;
-      }
+
+
 
       //鍏抽棴鎵撳紑鐨勪俊鎭獥浣�
 
@@ -433,11 +428,29 @@
         window.model = null;
       }
 
-
+      if (this.isMenuFlag != val) {
+        sgworld.Creator.SimpleGraphic.clear();
+        this.isMenuFlag = val;
+        if (this.entityaLayers.length != 0) {
+          for (var i in this.entityaLayers) {
+            sgworld.Viewer.entities.remove(this.entityaLayers[i]);
+          }
+          this.entityaLayers = [];
+        }
+        for (var i in this.$store.state.queryInfo) {
+          sgworld.Viewer.entities.remove(this.$store.state.queryInfo[i]);
+        }
+        this.$store.state.queryInfo = [];
+        if (this.$store.state.primitLayer != null) {
+          sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
+          this.$store.state.primitLayer = null;
+        }
+      }
 
 
       switch (val) {
         case 'a': //鍥惧眰绠$悊
+
           this.setCoverage(res.id);
           break;
         case 'b':
@@ -592,7 +605,7 @@
           var north = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().north);
           var west = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().west);
           var south = Cesium.Math.toDegrees(entities[i].rectangle.coordinates.getValue().south);
-          var line = turf.lineString([[east, north], [west, south]])
+          var line = turf.polygon([[[east, north], [west, north], [west, south], [east, south], [east, north]]])
           wkt = this.$wkt.convert(line.geometry)
           var fill = entities[i].rectangle._material._color._value;
           fillColor = fill.red + ',' + fill.green + ',' + fill.blue;
@@ -720,45 +733,91 @@
           console.error(e);
         }
       });
+
+      document.getElementById("shpFile").value = ""
+
     },
     showShpEntity(res) {
 
       for (var i in res) {
-    
         var wkt = this.$wkt.parse(res[i].wkt);
         var fillColor = res[i].fillColor.split(",");
-       var color = new Cesium.Color(fillColor[0], fillColor[1], fillColor[2], res[i].opacity)
+        var color = new Cesium.Color(parseFloat(fillColor[0]), parseFloat(fillColor[1]), parseFloat(fillColor[2]), res[i].opacity);
+        var name = res[i].name
         switch (res[i].type) {
           case 'rectangle':
-            debugger
-            break;
-          case 'point':
-            debugger
-            break;
           case 'polygon':
+
             var std = [];
             var geo = wkt.coordinates[0];
             for (var i in geo) {
               std.push(geo[i][0])
               std.push(geo[i][1])
             }
-            const entity = Viewer.entities.add({
-              name: 'Wyoming',
+            var entity = Viewer.entities.add({
+              name: name,
               polygon: {
                 hierarchy: Cesium.Cartesian3.fromDegreesArray(std),
                 //height : 100000,
-                material:color,
+                material: color,
                 outline: true,
                 outlineColor: color,
               }
             })
             this.entityaLayers.push(entity)
             break;
+          case 'point':
+            let point = Viewer.entities.add({
+              name: name,
+              position: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0], wkt.coordinates[1]), //缁忕含搴﹁浆涓栫晫鍧愭爣
+              point: {
+                show: true,
+                color: color,
+                pixelSize: 10,
+                outlineColor: color,
+                outlineWidth: 3,
+                heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+                disableDepthTestDistance: Number.POSITIVE_INFINITY,
+              },
+            });
+
+            this.entityaLayers.push(point)
+            break;
           case 'polyline':
-            debugger
+            var std = [];
+            var geo = wkt.coordinates;
+            for (var i in geo) {
+              std.push(geo[i][0])
+              std.push(geo[i][1])
+            }
+            let line = Viewer.entities.add({
+              name: name,
+              polyline: {
+                //缁忕含搴︽暟缁勮浆涓栫晫鍧愭爣锛屽甫楂樺害鐨勮瘽鏄痜romDegreesArrayHeights
+                positions: Cesium.Cartesian3.fromDegreesArray(std),
+                width: 10,
+                material: color,
+                clampToGround: true,
+              }
+            })
+
+            this.entityaLayers.push(line)
             break;
           case 'label':
             debugger
+            const label = Viewer.entities.add({
+              position: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0], wkt.coordinates[1]),
+              label: {
+                text: name,
+                fillColor: color,
+                font: '28px',
+                horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+                verticalOrigin: Cesium.VerticalOrigin.TOP,
+                heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+                disableDepthTestDistance: Number.POSITIVE_INFINITY,
+              },
+            })
+            this.entityaLayers.push(label)
             break;
         }
       }
@@ -1455,7 +1514,7 @@
     font-size: 16px;
     font-family: Microsoft YaHei;
     font-weight: 400;
-
+    border: 1px solid rgba(0, 0, 0, 0);
     padding: 10px;
     min-width: 100px;
     margin-left: 10px;

--
Gitblit v1.9.3