From 6fe940335b9ca7f4640983929b070c00e401dc61 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 09 三月 2023 09:48:14 +0800
Subject: [PATCH] 综合展示点击模型显示详细信息

---
 src/components/mapsdk.vue |   73 +++++++++++++++++++++++++-----------
 1 files changed, 50 insertions(+), 23 deletions(-)

diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index 14c3520..0cc288b 100644
--- a/src/components/mapsdk.vue
+++ b/src/components/mapsdk.vue
@@ -351,7 +351,7 @@
       >
         <el-card class="box-card">
           <div slot="header">
-            <span>{{$store.state.propertiesName.tabDesc || '灞炴�т俊鎭�'}}</span>
+            <span>灞炴�т俊鎭�</span>
             <div style="float: right; cursor: pointer">
               <el-link
                 type="primary"
@@ -404,6 +404,7 @@
 
         </el-card>
       </div>
+
       <!--闄勪欢鍒楄〃寮圭獥-->
       <el-dialog
         title="闄勪欢鍒楄〃"
@@ -622,8 +623,37 @@
     this.$bus.$on('changemapType', (e) => {
       this.show2DMap = e;
     });
+    //妯″瀷鎹曟崏
+    this.catchmodel()
   },
   methods: {
+
+    catchmodel() {
+      var that = this;
+      window.pickedFeature;
+      window.pickedColor;
+      window.modeCatchHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
+      window.modeCatchHandler.setInputAction((event) => {
+        window.pickedFeature && (window.pickedFeature.color = window.pickedColor);
+        window.pickedFeature = sgworld.Viewer.scene.pick(event.position);
+        if (Cesium.defined(window.pickedFeature)) {
+          if (window.pickedFeature.primitive instanceof Cesium.Cesium3DTileset) {
+            if (window.pickedFeature && window.pickedFeature.getProperty) {
+              window.pickedColor = window.pickedFeature.color
+              window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3);
+
+              this.$store.state.catModel = true;
+              this.$store.state.catModelInfo = {
+                id: pickedFeature.getProperty("id"),
+                name: pickedFeature.getProperty("name"),
+                layerId: pickedFeature.primitive.layerId,
+                layerName: pickedFeature.primitive.id
+              };
+            }
+          }
+        }
+      }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
+    },
     drawTerrainLevel() {
       this.clearTerrainLevel()
       var deep = parseFloat(this.terrainFrom.height)
@@ -680,13 +710,13 @@
           url: gaoDeBaseUrl[1].url,
         })
       );
-      this.layer3 = Viewer.imageryLayers.addImageryProvider(
-        new Cesium.UrlTemplateImageryProvider({
-          url: gaoDeBaseUrl[2].url,
-        })
-      );
+      // this.layer3 = Viewer.imageryLayers.addImageryProvider(
+      //   new Cesium.UrlTemplateImageryProvider({
+      //     url: gaoDeBaseUrl[2].url,
+      //   })
+      // );
 
-      window.ImageLayer3 = this.layer3;
+      // window.ImageLayer3 = this.layer3;
 
       // for (var i in gaoDeBaseUrl) {
       //   sgworld.Creator.createUrlTemplateImageryProvider(
@@ -755,18 +785,18 @@
     },
     setLayerVisible() {
       if (this.isActive == true) {
-        // Viewer.imageryLayers._layers[1].show = true
-        // Viewer.imageryLayers._layers[2].show = false
+        Viewer.imageryLayers._layers[1].show = true
+        Viewer.imageryLayers._layers[2].show = false
         // Viewer.imageryLayers._layers[3].show = false
 
-        Viewer.imageryLayers.lower(this.layer2);
-        Viewer.imageryLayers.lower(this.layer3);
+        // Viewer.imageryLayers.lower(this.layer2);
+        // Viewer.imageryLayers.lower(this.layer3);
       } else {
-        Viewer.imageryLayers.raise(this.layer3);
-        Viewer.imageryLayers.raise(this.layer2);
+        // Viewer.imageryLayers.raise(this.layer3);
+        // Viewer.imageryLayers.raise(this.layer2);
 
-        // Viewer.imageryLayers._layers[1].show = false
-        // Viewer.imageryLayers._layers[2].show = true
+        Viewer.imageryLayers._layers[1].show = false
+        Viewer.imageryLayers._layers[2].show = true
         // Viewer.imageryLayers._layers[3].show = true
       }
     },
@@ -1200,8 +1230,12 @@
     },
     //鑾峰彇闄勪欢鍒楄〃
     async getAttatchList() {
+      if (this.$store.state.propertiesName == null) {
+        return
+      }
       let tabName = this.$store.state.propertiesName.ns + '.' + this.$store.state.propertiesName.tab;
       let eventid = this.$store.state.propertiesInfo.eventid;
+
       var obj = {
         eventid: eventid,
         tabName: tabName,
@@ -1332,6 +1366,7 @@
         padding: 10px 20px;
       }
     }
+
     .terrainLevelBox {
       width: 350px;
       height: 370px;
@@ -1339,14 +1374,6 @@
       position: absolute;
       right: 8%;
       bottom: -11%;
-    }
-    .pathAnalysisBox {
-      width: 412px;
-
-      z-index: 40;
-      position: absolute;
-      right: 8%;
-      bottom: 1%;
     }
 
     .box-card {

--
Gitblit v1.9.3