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 |   99 +++++++++++++++++++++++++++++++------------------
 1 files changed, 63 insertions(+), 36 deletions(-)

diff --git a/src/store/modules/mobile.js b/src/store/modules/mobile.js
index 01217ab..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) {
@@ -268,6 +275,12 @@
         state.drawALineLayer.remove();
         state.drawALineLayer = null;
         state.isOpenDrawALine = false;
+      }
+    },
+    removerPolyLineIcon(state) {
+      if (state.drawALineLayerIcon) {
+        state.drawALineLayerIcon.remove();
+        state.drawALineLayerIcon = null;
       }
     },
     removePolylineMany(state) {
@@ -744,45 +757,53 @@
         color: color,
         speed: 10,
       });
-      let drawALineLayer = new global.DC.VectorLayer("layer");
-      state.mviewer.addLayer(drawALineLayer);
-      let polyline = new global.DC.Polyline(Str); //加入绘画点
+      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/dingwei1.png"
+        ); //加入绘画点
+        billboard.setStyle({
+          pixelOffset: { x: 0, y: -17 }, //偏移像素
+        });
+        //订阅事件
+        billboard.on(global.DC.MouseEventType.CLICK, (e) => {
+          // console.log(e);
+          // return;
+          // 定制化窗体
+          let position = e.position,
+            lntLat = [e.overlay._position._lng, e.overlay._position._lat];
+          let windowData = {
+            position,
+            lntLat,
+            query: {
+              ...(value[1] || {}),
+              position,
+              lntLat,
+              notAddGoOn: "notAddGoOn",
+            },
+            useJWD: true, //仅使用经纬度
+          };
+          dispatch("setMobileWindows", windowData);
+        });
+        state.drawALineLayerIcon.addOverlay(billboard);
+      }
+      let polyline = new global.DC.Polyline(Str); //加入线
       polyline.setStyle({
         width: 3,
         material: material,
         clampToGround: true,
       });
-      drawALineLayer.addOverlay(polyline);
-      //如果是添加  给第一个点加入图标 和事件
-      // if (value[1]) {
-      //   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"
-      //   ); //加入绘画点
-      //   billboard.setStyle({
-      //     pixelOffset: { x: 0, y: -17 }, //偏移像素
-      //   });
-      //   //订阅事件
-      //   billboard.on(global.DC.MouseEventType.CLICK, (e) => {
-      //     // console.log(e);
-      //     // return;
-      //     // 定制化窗体
-      //     let position = e.position,
-      //       lntLat = [e.overlay._position._lng, e.overlay._position._lat];
-      //     let windowData = {
-      //       position,
-      //       lntLat,
-      //       query: { ...(value[1] || {}), position, lntLat },
-      //       useJWD: true, //仅使用经纬度
-      //     };
-      //     dispatch("setMobileWindows", windowData);
-      //   });
-      //   drawALineLayer.addOverlay(billboard);
-      // }
+      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);

--
Gitblit v1.9.3