From 9c5734f4870ba0486957e8a5e536ec9f332e83eb Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 11 Feb 2022 13:48:08 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web

---
 src/components/mobilemap/index.vue |  249 ++++++++++++++++++++-----------------------------
 1 files changed, 102 insertions(+), 147 deletions(-)

diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index f177910..f1560f0 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -284,8 +284,8 @@
         // if (height > 2000) {
         //   conBack(2000);
         // }
-        if (height <= 190 && isSet) {
-          conBack(190);
+        if (height <= 79 && isSet) {
+          conBack(79);
         }
         // if (height > 220 && height <= 280 && isSet) {
         //   conBack(280);
@@ -296,12 +296,30 @@
         // if (height > 340 && height <= 400 && isSet) {
         //   conBack(400);
         // }
-        if (height > 400 && isSet) {
-          conBack(400);
+        if (height > 200 && isSet) {
+          conBack(200);
         }
       });
 
       // 按钮事件
+      let butSetViews = (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, // 定位的时间间隔
+        });
+        overii();
+      };
       that.butbut = function () {
         //放大
         document.querySelector(".dc-zoom-controller").children[0].onclick =
@@ -310,60 +328,18 @@
               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,
-                  },
-                });
-
+              if (height > 180) {
+                butSetViews(160);
                 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,
-                  },
-                });
-
+              if (height > 140) {
+                butSetViews(120);
                 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,
-                  },
-                });
+              if (height > 100) {
+                butSetViews(80);
               }
             }
           };
@@ -374,56 +350,18 @@
               const height = Math.ceil(
                 viewer.camera.positionCartographic.height
               );
+              console.log(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 <= 100) {
+                butSetViews(120);
               }
 
-              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 > 100 && height <= 140) {
+                butSetViews(160);
               }
 
-              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,
-                  },
-                });
+              if (height > 140 && height < 180) {
+                butSetViews(200);
               }
             }
           };
@@ -431,29 +369,31 @@
         // 指示器
         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();
-        };
+          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, // 定位的时间间隔
+            });
+            overii();
+          },
+          isCameraTime = null;
         viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
           if (that.dimension == "2.5D") {
             // console.log(e);
@@ -464,39 +404,53 @@
             ii++;
             cutHeight = height - startHeight;
             // console.log(cutHeight);
-            console.log(height);
+            // 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 (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);
+                    }
                   }
-                  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);
+                  //放大
+                } 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);
+                    }
                   }
                 }
               }
-            }
+            };
           }
         });
       };
@@ -812,6 +766,7 @@
               video: item.videourl,
               buts: ["定位", "实景", "图集"],
               panoramaurl: item.panoramaurl, //全景
+              fromTo: "mapClick",
             };
             // 定制化窗体
             // console.log(item, useData, "111111");
@@ -857,7 +812,7 @@
           };
           that.dimension == "2.5D"
             ? doit2(
-                [114.03928791, 27.62954732, 200.0],
+                [114.04020791, 27.62934732, 160.0],
                 // [114.04062292, 27.62666834, 220.0],
                 [
                   that.dimensionData.heading,

--
Gitblit v1.9.3