From c1514cfc69b679d05398bb1def6b24c772426aa0 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 14 二月 2023 09:11:46 +0800
Subject: [PATCH] 综合展示图层管理图标切换

---
 src/components/MapView/mapMenuTop.vue |  102 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 76 insertions(+), 26 deletions(-)

diff --git a/src/components/MapView/mapMenuTop.vue b/src/components/MapView/mapMenuTop.vue
index 0280977..5ba0202 100644
--- a/src/components/MapView/mapMenuTop.vue
+++ b/src/components/MapView/mapMenuTop.vue
@@ -43,7 +43,7 @@
           </el-option>
         </el-select>
       </el-form-item>
- 
+
       <el-form-item>
         <el-select
           @change="changeValue($event)"
@@ -87,6 +87,19 @@
           plain
         >閲嶇疆</el-button>
       </el-form-item>
+      <!-- <el-form-item>
+        <el-button
+          plain
+          size="small"
+          @click="flyQuery"
+        >鏌ョ湅</el-button>
+        <el-button
+          plain
+          size="small"
+          @click="flyRemove"
+        >鍙栨秷</el-button>
+      </el-form-item> -->
+
     </el-form>
     <queryinfo ref="queryinfo" />
   </div>
@@ -122,7 +135,7 @@
           children: [],
         },
       ],
- 
+
       queryOption: [
         {
           value: 'point',
@@ -154,16 +167,45 @@
         label: 'label',
       },
       graphicLayer: null,
+      flyEntity: null,
     };
   },
- 
+
   mounted() {
     // sgworld.Creator.SimpleGraphic.edit(false, { editProp: false });
- 
+
     this.menuTopFrom.queryType = 'rectangle';
     this.getAllTable();
   },
   methods: {
+    flyRemove() {
+
+    },
+    flyQuery() {
+    // Viewer.flyTo( sgworld.Creator.SimpleGraphic._viewer.entities._entities._array[0])
+      // switch (this.menuTopFrom.queryType) {
+      //   case 'point': //鐐�
+      //     Viewer.camera.flyTo({
+      //       destination: Cesium.Cartesian3.fromDegrees(this.flyEntity.lng, this.flyEntity.lat, 3000),
+
+      //     });
+
+      //     break;
+      //   case 'polyline': //绾�
+      //     debugger
+      //     break;
+      //   case 'rectangle': //鐭╁舰
+
+      //     debugger
+      //     break;
+      //   case 'circle': //鍦�
+      //     debugger
+      //     break;
+      //   case 'polygon': //澶氳竟褰�
+      //     debugger
+      //     break;
+      // }
+    },
     changeValue(value) {
       // var obj = {};
       // obj = this.queryOption.find(function (item) {
@@ -179,11 +221,11 @@
         this.$message.error('鍒楄〃璋冪敤澶辫触');
       }
       var option = data.result;
- 
+
       for (var i in option) {
         var val_Data = option[i];
         val_Data.id = '1' + i;
-        val_Data.label = val_Data.tabDesc  ;
+        val_Data.label = val_Data.tabDesc;
         if (option[i].ns == 'bd') {
           this.layerData[0].children.push(val_Data);
         } else {
@@ -195,7 +237,7 @@
     getCheckedNodes() {
       var valTree = this.$refs.tree.getCheckedNodes();
       if (valTree.length == 0) return;
- 
+
       this.menuTopFrom.queryLayer = valTree[0].tabDesc;
       for (var i = 0; i < valTree.length; i++) {
         this.treeChange.push(valTree[i]);
@@ -206,7 +248,7 @@
       this.treeChange = [];
       this.menuTopFrom.queryLayer = null;
       this.$refs.tree.setCheckedKeys([]);
- 
+
     },
     //瀵煎叆shp鏂囦欢
     async setMenuTopFile() {
@@ -224,7 +266,7 @@
         }
       }
       if (count != 4) {
- 
+
         this.$message({
           message: 'ShapeFile鏂囦欢閫夋嫨涓嶅叏锛�',
           type: 'warning'
@@ -258,7 +300,7 @@
       //娓呯┖鏍囩粯
       sgworld.Creator.SimpleGraphic.edit(false, { editProp: false });
       sgworld.Creator.SimpleGraphic.clear();
- 
+
       if (this.treeChange.length == 0) {
         this.$message.error('璇烽�夋嫨瑕佹煡璇㈢殑鏁版嵁');
         return;
@@ -272,6 +314,7 @@
             outlineWidth: 5,
           },
           (entity) => {
+
             this.setTurfGeometry(entity);
           }
         );
@@ -281,36 +324,42 @@
     },
     setTurfGeometry(res) {
       var that = this;
+      var res_val;
       switch (this.menuTopFrom.queryType) {
         case 'point': //鐐�
           var val = that.setCartesianToEightFour(res.position.getValue());
+          res_val = val;
           that.setTurfCircle([val.lng, val.lat], 10);
           break;
         case 'polyline': //绾�
           var polyline = res.polyline.positions.getValue();
- 
+          res_val = polyline;
           that.setTurfPolyOrLine(polyline, 'polyline');
           break;
         case 'rectangle': //鐭╁舰
           let rectangle = res.rectangle.coordinates.getValue();
+          res_val = rectangle;
           var result = new Cesium.Rectangle.subsample(
             rectangle,
             Cesium.Ellipsoid.WGS84,
             rectangle.height
           );
           that.setTurfPolyOrLine(result, 'rectangle');
- 
+
           break;
         case 'circle': //鍦�
           var val = that.setCartesianToEightFour(res.position.getValue());
+          res_val = res.position.getValue();
           var radius = res.ellipse.semiMajorAxis.getValue();
           that.setTurfCircle([val.lng, val.lat], radius);
           break;
         case 'polygon': //澶氳竟褰�
           var polygon = res.polygon.hierarchy.getValue().positions;
+          res_val = polygon;
           that.setTurfPolyOrLine(polygon, 'polygon');
           break;
       }
+      this.flyEntity = res_val
     },
     setTurfCircle(position, radius) {
       var options = {
@@ -342,12 +391,12 @@
       }
       this.setJonToWKT(restVal);
     },
- 
+
     setJonToWKT(res) {
-      console.log(res.geometry)
+
       var jsonToWkt = this.$wkt.convert(res.geometry);
       this.$store.state.mapMenuShpFile = encr(jsonToWkt);
- 
+
       this.showMapMenuPop();
     },
     showMapMenuPop() {
@@ -356,12 +405,12 @@
       // this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close();
       this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.open("绌洪棿鏌ヨ", null, {
         close: () => {
- 
+
           if (this.$store.state.primitLayer != null) {
-            sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
+            // sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
             this.$store.state.primitLayer = null;
           }
- 
+
           if (window.Viewer.scene.primitives.length != 0) {
             window.Viewer.scene.primitives.removeAll()
           }
@@ -369,7 +418,7 @@
       });
       this.$bus.$emit('changeMapMenuTop', 'true');
       sgworld.Creator.SimpleGraphic.edit(false, { editProp: false });
-     // sgworld.Creator.SimpleGraphic.clear();
+      // sgworld.Creator.SimpleGraphic.clear();
       //娓呯┖inputFile
       // var file = document.getElementById('getMenuTopFile');
       // file.outerHTML = file.outerHTML;
@@ -381,8 +430,10 @@
       this.menuTopFrom.queryLayer = null;
       this.menuTopFrom.queryType = 'rectangle';
       this.$refs.tree.setCheckedKeys([]);
-      
-      
+ //娓呯┖鏍囩粯
+      sgworld.Creator.SimpleGraphic.edit(false, { editProp: false });
+      sgworld.Creator.SimpleGraphic.clear();
+
       // //娓呴櫎瀵硅薄
       // if (window.Viewer.scene.primitives.length != null) {
       //   window.Viewer.scene.primitives.removeAll();
@@ -393,10 +444,10 @@
       // }
       //鍏抽棴绐楀彛
       this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close("queryinfo");
-      
-      
-      
-     
+
+
+
+
     },
     setCartesianToEightFour(res) {
       var std = {};
@@ -426,5 +477,4 @@
   padding: 4px 20px;
   font-weight: 400;
 }
- 
 </style>

--
Gitblit v1.9.3