From 89732c234b7b574d65bbd5498ae9981d4777a662 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 09 Feb 2022 13:43:10 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web

---
 src/components/mobilemap/index.vue |  236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 231 insertions(+), 5 deletions(-)

diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index 8c377cd..f177910 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>
@@ -40,6 +42,9 @@
   name: "mobilemapBox",
   data() {
     return {
+      butbut: null,
+      heights: 0,
+      heights1: 0,
       DC: "",
       bigPopup: {
         width: 0,
@@ -279,13 +284,222 @@
         // if (height > 2000) {
         //   conBack(2000);
         // }
-        if (height < 0 && isSet) {
-          conBack(0);
+        if (height <= 190 && isSet) {
+          conBack(190);
         }
-        if (height > 4000 && isSet) {
-          conBack(4000);
+        // if (height > 220 && height <= 280 && isSet) {
+        //   conBack(280);
+        // }
+        // if (height > 280 && height <= 340 && isSet) {
+        //   conBack(340);
+        // }
+        // if (height > 340 && height <= 400 && isSet) {
+        //   conBack(400);
+        // }
+        if (height > 400 && isSet) {
+          conBack(400);
         }
       });
+
+      // 按钮事件
+      that.butbut = function () {
+        //放大
+        document.querySelector(".dc-zoom-controller").children[0].onclick =
+          function () {
+            if (that.dimension == "2.5D") {
+              const height = Math.ceil(
+                viewer.camera.positionCartographic.height
+              );
+
+              if (height > 360) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    330
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+
+                return;
+              }
+
+              if (height > 300) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    270
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+
+                return;
+              }
+
+              if (height > 240) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    200
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+              }
+            }
+          };
+        //缩小
+        document.querySelector(".dc-zoom-controller").children[2].onclick =
+          function () {
+            if (that.dimension == "2.5D") {
+              const height = Math.ceil(
+                viewer.camera.positionCartographic.height
+              );
+
+              if (height <= 240) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    270
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+              }
+
+              if (height > 240 && height <= 300) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    330
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+              }
+
+              if (height > 300 && height < 360) {
+                viewer.camera.setView({
+                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                    viewer.camera.positionCartographic.longitude,
+                    viewer.camera.positionCartographic.latitude,
+                    400
+                  ),
+                  orientation: {
+                    // 指向
+                    heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0,
+                  },
+                });
+              }
+            }
+          };
+        //滚轮事件
+        // 指示器
+        var ii = 1,
+          startHeight = 0,
+          cutHeight = 0;
+        let overii = function () {
+          ii = 1;
+          startHeight = 0;
+          cutHeight = 0;
+        };
+        let setViews = (num) => {
+          viewer.camera.setView({
+            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,
+            },
+          });
+          overii();
+        };
+        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 (ii != 1) {
+              if (cutHeight >= 0) {
+                if (cutHeight > 3) {
+                  if (height >= 200 && height < 270) {
+                    setViews(270);
+                  }
+                  if (height >= 273 && height < 330) {
+                    setViews(330);
+                  }
+                  if (height >= 333 && height < 400) {
+                    setViews(400);
+                  }
+                }
+                //放大
+              } else {
+                //缩小
+                if (cutHeight < -3) {
+                  if (height <= 400 && height > 327) {
+                    setViews(330);
+                  }
+                  if (height <= 327 && height > 267) {
+                    setViews(270);
+                  }
+                  if (height <= 267 && height > 200) {
+                    setViews(200);
+                  }
+                }
+              }
+            }
+          }
+        });
+      };
 
       // 地图点击事件
       // viewer.on(DC.MouseEventType.CLICK, (e) => {
@@ -643,7 +857,8 @@
           };
           that.dimension == "2.5D"
             ? doit2(
-                [114.03928791, 27.62954732, 360.0],
+                [114.03928791, 27.62954732, 200.0],
+                // [114.04062292, 27.62666834, 220.0],
                 [
                   that.dimensionData.heading,
                   that.dimensionData.pitch,
@@ -826,6 +1041,9 @@
     }
 
     DC.ready(initViewer);
+    setTimeout(() => {
+      that.butbut();
+    }, 0);
   },
   methods: {
     openPopupS(position, lntLat, query) {
@@ -849,4 +1067,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