From 2fae357b20387b35a7cf0768120c2d9297b5fe08 Mon Sep 17 00:00:00 2001
From: 584911253@qq.com <584911253@qq.com>
Date: 星期五, 03 三月 2023 15:52:10 +0800
Subject: [PATCH] 空间查询属性点击事件,附件查看

---
 src/components/MapView/mapMenuPop.vue |   36 +++++++++++++++++++++++++++++++++---
 1 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/components/MapView/mapMenuPop.vue b/src/components/MapView/mapMenuPop.vue
index d5d9419..ce7b278 100644
--- a/src/components/MapView/mapMenuPop.vue
+++ b/src/components/MapView/mapMenuPop.vue
@@ -546,7 +546,7 @@
           this.imagePoint = null;
         }
         var wkt = this.$wkt.parse(val1);
-        this.setMapLoaction(wkt);
+        this.setMapLoaction(wkt,row);
       }
     },
     setMapLoaction(res) {
@@ -604,6 +604,7 @@
       this.listdata.pageIndex = 1;
       this.listdata.pageSize = 10;
       this.listdata.name = res.entity;
+      this.$store.state.propertiesName = res;
       this.getTableDateHidder();
     },
     handleSizeChange(val) {
@@ -642,6 +643,7 @@
     },
     async showAllImage(res) {
       for (var i in res) {
+        let properties = res[i];
         var param = {
           gid: res[i].gid,
           name: this.listdata.name,
@@ -654,7 +656,7 @@
         if (val1) {
           var wkt = this.$wkt.parse(val1);
           // this.getprimitiLayer(wkt);
-          this.primitivesAddLayer(wkt);
+          this.primitivesAddLayer(wkt,properties);
         }
       }
     },
@@ -667,7 +669,7 @@
           break;
       }
     },
-    primitivesAddLayer(res) {
+    primitivesAddLayer(res,properties) {
       switch (res.type) {
         case "Point":
           var val = Cesium.Cartesian3.fromDegrees(
@@ -676,6 +678,8 @@
           );
           var point = Viewer.entities.add({
             position: val,
+            properties:properties,
+            tag : "properties_point",
             billboard: {
               // 鍥惧儚鍦板潃锛孶RI鎴朇anvas鐨勫睘鎬�
               image: SmartEarthRootUrl + "Workers/image/mark.png",
@@ -694,6 +698,29 @@
           });
           point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY;
           this.$store.state.queryInfo.push(point);
+            //鐐瑰嚮浜嬩欢
+          window.propertieshandler = new Cesium.ScreenSpaceEventHandler(
+              sgworld.Viewer.scene.canvas
+          );
+          window.propertieshandler.setInputAction(event => {
+            let pick = sgworld.Viewer.scene.pick(event.position);
+            // debugger;
+            if (pick && pick.id && pick.id.tag == "properties_point") {
+              this.$store.state.propertiesFlag = '1';
+              let properties = pick.id.properties;
+              let propertyNames = pick.id.properties.propertyNames;
+              let obj = {};
+              obj["eventid"] = properties['_eventid']._value;
+              this.attributeData.forEach(item => {
+                propertyNames.forEach(itemElement => {
+                  if (itemElement == item.field){
+                    obj[item.alias] = properties[itemElement]._value
+                  }
+                })
+              })
+              this.$store.state.propertiesInfo = obj;
+            }
+          }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
           break;
         case "LineString":
         case "MultiLineString":
@@ -752,6 +779,9 @@
       }
     });
   },
+  destroyed() {
+    this.$store.state.propertiesFlag = null;
+  }
 };
 </script>
 

--
Gitblit v1.9.3