From 0fa88f9c2e3c8ce335e7cd6dfc6c8e5641950735 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Wed, 09 Feb 2022 15:53:24 +0800
Subject: [PATCH] +弹窗图片可点击,列表展示文字区域点击是定位,图片可点击,+活动打开后隐藏右侧控制栏,+操作方式更改

---
 src/components/mobilemap/index.vue |  144 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 128 insertions(+), 16 deletions(-)

diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index 3d9f773..a41a9ae 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -30,6 +30,8 @@
     <mobileActivity></mobileActivity>
     <!-- 盖住左下角 -->
     <div class="cover_mobileMap">智慧社区</div>
+    <!-- 指示器 -->
+    <div class="heights">{{ heights }}---{{ heights1 }}</div>
   </div>
 </template>
 <script>
@@ -41,6 +43,8 @@
   data() {
     return {
       butbut: null,
+      heights: 0,
+      heights1: 0,
       DC: "",
       bigPopup: {
         width: 0,
@@ -280,8 +284,8 @@
         // if (height > 2000) {
         //   conBack(2000);
         // }
-        if (height <= 220 && isSet) {
-          conBack(220);
+        if (height <= 79 && isSet) {
+          conBack(79);
         }
         // if (height > 220 && height <= 280 && isSet) {
         //   conBack(280);
@@ -292,8 +296,8 @@
         // if (height > 340 && height <= 400 && isSet) {
         //   conBack(400);
         // }
-        if (height > 400 && isSet) {
-          conBack(400);
+        if (height > 200 && isSet) {
+          conBack(200);
         }
       });
 
@@ -307,12 +311,12 @@
                 viewer.camera.positionCartographic.height
               );
 
-              if (height > 370) {
+              if (height > 360) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
                     viewer.camera.positionCartographic.latitude,
-                    340
+                    330
                   ),
                   orientation: {
                     // 指向
@@ -326,12 +330,12 @@
                 return;
               }
 
-              if (height > 310) {
+              if (height > 300) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
                     viewer.camera.positionCartographic.latitude,
-                    280
+                    270
                   ),
                   orientation: {
                     // 指向
@@ -345,12 +349,12 @@
                 return;
               }
 
-              if (height > 250) {
+              if (height > 240) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
                     viewer.camera.positionCartographic.latitude,
-                    220
+                    200
                   ),
                   orientation: {
                     // 指向
@@ -371,12 +375,12 @@
                 viewer.camera.positionCartographic.height
               );
 
-              if (height <= 250) {
+              if (height <= 240) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
                     viewer.camera.positionCartographic.latitude,
-                    280
+                    270
                   ),
                   orientation: {
                     // 指向
@@ -388,12 +392,12 @@
                 });
               }
 
-              if (height > 250 && height <= 310) {
+              if (height > 240 && height <= 300) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
                     viewer.camera.positionCartographic.latitude,
-                    340
+                    330
                   ),
                   orientation: {
                     // 指向
@@ -405,7 +409,7 @@
                 });
               }
 
-              if (height > 310 && height < 370) {
+              if (height > 300 && height < 360) {
                 viewer.camera.setView({
                   destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                     viewer.camera.positionCartographic.longitude,
@@ -423,6 +427,106 @@
               }
             }
           };
+        //滚轮事件
+        // 指示器
+        var ii = 1,
+          startHeight = 0,
+          cutHeight = 0,
+          overii = function () {
+            ii = 1;
+            startHeight = 0;
+            cutHeight = 0;
+          },
+          setViews = (num) => {
+            viewer.camera.flyTo({
+              destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                viewer.camera.positionCartographic.longitude,
+                viewer.camera.positionCartographic.latitude,
+                num
+              ),
+              orientation: {
+                // 指向
+                heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                // 视角
+                pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                roll: 0.0,
+              },
+              duration: 0.5, // 定位的时间间隔
+            });
+            // that.$store.dispatch("mapFlyTo", {
+            //   //飞入
+            //   lntLat: [
+            //     viewer.camera.positionCartographic.longitude,
+            //     viewer.camera.positionCartographic.latitude,
+            //     num,
+            //   ],
+            //   heading: 0,
+            //   pitch: -90,
+            //   roll: 0.0,
+            //   noOpen: true,
+            // });
+            overii();
+          },
+          isCameraTime = null;
+        viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
+          if (that.dimension == "2.5D") {
+            // console.log(e);
+            const height = Math.ceil(viewer.camera.positionCartographic.height);
+            if (ii == 1 && startHeight == 0) {
+              startHeight = height;
+            }
+            ii++;
+            cutHeight = height - startHeight;
+            // console.log(cutHeight);
+            console.log(height);
+            that.heights = height;
+            that.heights1 = cutHeight;
+            // return;
+            if (isCameraTime) {
+              clearTimeout(isCameraTime);
+              isCameraTime = setTimeout(() => {
+                takes();
+                isCameraTime = null;
+              }, 200);
+            } else {
+              isCameraTime = setTimeout(() => {
+                takes();
+                isCameraTime = null;
+              }, 200);
+            }
+            let takes = () => {
+              if (ii != 1) {
+                if (cutHeight >= 0) {
+                  if (cutHeight > 3) {
+                    if (height >= 83 && height < 120) {
+                      setViews(120);
+                    }
+                    if (height >= 123 && height < 160) {
+                      setViews(160);
+                    }
+                    if (height >= 163 && height < 200) {
+                      setViews(200);
+                    }
+                  }
+                  //放大
+                } else {
+                  //缩小
+                  if (cutHeight < -3) {
+                    if (height <= 200 && height > 157) {
+                      setViews(160);
+                    }
+                    if (height <= 157 && height > 117) {
+                      setViews(120);
+                    }
+                    if (height <= 117 && height > 80) {
+                      setViews(80);
+                    }
+                  }
+                }
+              }
+            };
+          }
+        });
       };
 
       // 地图点击事件
@@ -781,7 +885,7 @@
           };
           that.dimension == "2.5D"
             ? doit2(
-                [114.03928791, 27.62954732, 220.0],
+                [114.04020791, 27.62934732, 160.0],
                 // [114.04062292, 27.62666834, 220.0],
                 [
                   that.dimensionData.heading,
@@ -991,4 +1095,12 @@
   height: 100%;
   position: relative;
 }
+.heights {
+  background-color: #fff;
+  font-size: 24px;
+  position: fixed;
+  top: 0;
+  right: 0;
+  z-index: 9999999;
+}
 </style>

--
Gitblit v1.9.3