From b41b6bcda8d085b0c9b0f3d176e76fbed97557a8 Mon Sep 17 00:00:00 2001
From: 584911253@qq.com <584911253@qq.com>
Date: 星期二, 14 三月 2023 16:15:47 +0800
Subject: [PATCH] 拾取分析功能开发

---
 src/views/Synthesis/LeftMenu.vue |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue
index 4bb524a..bbde562 100644
--- a/src/views/Synthesis/LeftMenu.vue
+++ b/src/views/Synthesis/LeftMenu.vue
@@ -251,8 +251,8 @@
   comprehensive_deletes,
   comprehensive_selectModelByPageAndCount,
   comprehensive_insertModel,
-  comprehensive_updateModel
-} from "../../api/api.js";
+  comprehensive_updateModel, selectByBuffer
+} from '../../api/api.js'
 import {
   OverviewMap,
   defaults as defaultControls,
@@ -471,6 +471,12 @@
             name: "绌洪棿鏌ヨ",
             css: "twoMenu_imge52",
           },
+          {
+            id: "e3",
+            label: "synthesis.pickup",
+            name: "鎷惧彇",
+            css: "twoMenu_imge52",
+          },
         ],
         [
           {
@@ -669,6 +675,7 @@
       }],
       modelClip:false,
       clippingPlanes:null,
+      showPickUp:false,
     };
   },
   methods: {
@@ -1384,12 +1391,30 @@
     setIquery(res) {
       switch (res) {
         case "e2":
+          Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
           this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean;
           this.$store.state.mapMenuBoxFlag = "1";
           break;
         case "e1":
+          Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
           this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean;
           this.$store.state.mapMenuBoxFlag = "2";
+          break;
+          //鎷惧彇鍔熻兘
+        case "e3":
+          this.$store.state.mapMenuBoolean = false;
+          this.showPickUp = !this.showPickUp;
+          if (this.showPickUp){
+            let that = this;
+            Viewer.screenSpaceEventHandler.setInputAction(function (event) {
+              let p = sgworld.Navigate.getMouseDegrees(event);
+              console.log(p);
+              that.getPickUpData(p);
+            }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+          }else {
+            this.$refs.queryinfo.closeAll();
+            Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+          }
           break;
       }
     },
@@ -2395,6 +2420,34 @@
     handleAttatchChange(val) {
       this.attacgSelection = val;
     },
+    //鎷惧彇鏁版嵁鑾峰彇
+    async getPickUpData(info){
+      let checkedLayers = JSON.parse(sessionStorage.getItem("checkedLayers"));
+      let showPop = false;
+      for (const item of checkedLayers) {
+        let name = item.url.replaceAll("LF:","");
+        name = name.replaceAll("_","");
+        let params = {
+          buffer:10,
+          limit:20,
+          name:name,
+          wkt:`POINT (${info.lon} ${info.lat})`,
+        }
+        const res = await selectByBuffer(params);
+        if (res.result && res.result.length > 0){
+          this.$store.state.mapPopBoxFlag = "4";
+          this.$store.state.pickUpPointInfo = info;
+          this.$refs &&
+          this.$refs.queryinfo &&
+          this.$refs.queryinfo.open("鎷惧彇鍒嗘瀽", null,);
+          showPop = true;
+          break;
+        }
+      }
+      if (!showPop){
+        this.$message.warning("鏆傛棤鏁版嵁!");
+      }
+    }
   },
   mounted() {
     this.measureData = new Map();

--
Gitblit v1.9.3