From 1b65bf157e9d1852bf819bcebcdbf596b77ae6b9 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 18 Jan 2022 14:11:36 +0800
Subject: [PATCH] +点击建筑弹窗加绿布

---
 src/store/modules/mobile.js |   64 ++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/src/store/modules/mobile.js b/src/store/modules/mobile.js
index 979e095..88bf5b0 100644
--- a/src/store/modules/mobile.js
+++ b/src/store/modules/mobile.js
@@ -46,6 +46,7 @@
     tilesetLayer: null, //2.5d模型
     usetowpointfive: null,
     tilesetLayer: null, //瀑布流
+    areaLayer: null, //2.5d事件--绿色图层
 
     vecLayer: null, //3D底图
     cvaLayer: null, //3D底图
@@ -56,6 +57,7 @@
     navigationStartLngLat: "", //导航起点
     navigationEndLngLat: "", //导航终点
     drawALineLayer: null, //导航路径图层
+    drawALineLayerIcon: null, //导航路径图层图标
     isOpenDrawALine: false, //是否开启路径
     endPosition: "", //传送终点经纬度--
     isendPosition: false, //传送终点经纬度--感应数据
@@ -176,6 +178,7 @@
         state.tilesetLayer.show = true; //显示3d图形
         state.startPointFn(); //移动默认视角
         // state.mviewer.flyTo(state.tileset);
+        state.areaLayer.show = false; //绿布
 
         //3D视角不限制
         state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 80;
@@ -207,7 +210,7 @@
         state.newLayer = state.usetowpointfive(); //添加2.5d图形贴片
         state.wallLayer.show = false; //打开瀑布
         state.startPointFn(); //移动默认视角
-
+        state.areaLayer.show = true; //绿布
         //2.5D视角限制
         state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 0;
         // 最大
@@ -223,6 +226,10 @@
         // 视角旋转
         state.mviewer.scene.screenSpaceCameraController.enableTilt = false;
       }
+    },
+    //绿布
+    MSET_areaLayer(state, data) {
+      state.areaLayer = data;
     },
     //切换控制
     MSET_PERSPECTIVECONTROL(state, data) {
@@ -270,6 +277,12 @@
         state.isOpenDrawALine = false;
       }
     },
+    removerPolyLineIcon(state) {
+      if (state.drawALineLayerIcon) {
+        state.drawALineLayerIcon.remove();
+        state.drawALineLayerIcon = null;
+      }
+    },
     removePolylineMany(state) {
       if (state.drawALineLayerMany) {
         state.drawALineLayerMany.remove();
@@ -302,7 +315,7 @@
       const nowHeight = Math.ceil(
         state.mviewer.camera.positionCartographic.height
       );
-      console.log(data);
+      // console.log(data);
       if (state.dimension == "3D") {
         Flys = [
           +data.lntLat[0] + 0.01197,
@@ -744,22 +757,19 @@
         color: color,
         speed: 10,
       });
-      let drawALineLayer = new global.DC.VectorLayer("layer");
-      state.mviewer.addLayer(drawALineLayer);
-      let polyline = new global.DC.Polyline(Str); //加入绘画点
-      polyline.setStyle({
-        width: 3,
-        material: material,
-        clampToGround: true,
-      });
-      drawALineLayer.addOverlay(polyline);
+      state.drawALineLayer = new global.DC.VectorLayer("lineLayer");
+      state.mviewer.addLayer(state.drawALineLayer);
+
       //如果是添加  给第一个点加入图标 和事件
       if (value[1]) {
+        commit("removerPolyLineIcon");
+        state.drawALineLayerIcon = new global.DC.VectorLayer("pointLayer");
+        state.mviewer.addLayer(state.drawALineLayerIcon);
         let post = Str.split(";")[0].split(",");
         let position = new global.DC.Position(post[0], post[1]);
         let billboard = new global.DC.Billboard(
           position,
-          "img/dingwei/dingwei4.png"
+          "img/dingwei/dingwei1.png"
         ); //加入绘画点
         billboard.setStyle({
           pixelOffset: { x: 0, y: -17 }, //偏移像素
@@ -774,15 +784,26 @@
           let windowData = {
             position,
             lntLat,
-            query: { ...(value[1] || {}), position, lntLat },
+            query: {
+              ...(value[1] || {}),
+              position,
+              lntLat,
+              notAddGoOn: "notAddGoOn",
+            },
             useJWD: true, //仅使用经纬度
           };
           dispatch("setMobileWindows", windowData);
         });
-        drawALineLayer.addOverlay(billboard);
+        state.drawALineLayerIcon.addOverlay(billboard);
       }
+      let polyline = new global.DC.Polyline(Str); //加入线
+      polyline.setStyle({
+        width: 3,
+        material: material,
+        clampToGround: true,
+      });
+      state.drawALineLayer.addOverlay(polyline);
 
-      state.drawALineLayer = drawALineLayer;
       state.isOpenDrawALine = true;
       // commit("cameraSetView", state.navigationStartLngLat); //移动
     },
@@ -791,6 +812,7 @@
       //检查是否存在路线
       commit("removePolylineMany");
       commit("removePolyline");
+      commit("removerPolyLineIcon");
       let Strs = value[0];
       let red = global.DC.Namespace.Cesium.Color.fromCssColorString("#FF0000");
       let white = global.DC.Namespace.Cesium.Color.fromCssColorString("#fff");
@@ -805,7 +827,7 @@
         image: "img/icon/right.png",
         repeat: { x: 320, y: 1 },
       });
-      let drawALineLayerMany = new global.DC.VectorLayer("layer");
+      let drawALineLayerMany = new global.DC.VectorLayer("manyLinePointLayer");
       state.mviewer.addLayer(drawALineLayerMany);
       //多条线
       for (let k in Strs) {
@@ -853,7 +875,12 @@
           let windowData = {
             position,
             lntLat,
-            query: { ...(value[2] || {}), position, lntLat },
+            query: {
+              ...(value[2] || {}),
+              position,
+              lntLat,
+              notAddGoOn: "notAddGoOn",
+            },
             useJWD: true, //仅使用经纬度
           };
           dispatch("setMobileWindows", windowData);
@@ -888,9 +915,8 @@
         drawALineLayerMany.addOverlay(Labels);
         // console.log(point[k]);
       }
-
       state.drawALineLayerMany = drawALineLayerMany;
-      state.isOpenDrawALineMany = true;
+      state.isOpenDrawALineMany = value[2].name ? value[2].name : true;
       // commit("cameraSetView", state.navigationStartLngLat); //移动
     },
   },

--
Gitblit v1.9.3