From a22aa1086eeef39a26cc161326ce09cd183185ea Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Fri, 04 Mar 2022 15:57:47 +0800
Subject: [PATCH] 3.3 1.自定义标签,退出后自动清除 2.自定义标签,转换二维码的数据格式ok,移动端对接二维码ok, 3.自定义标签点击移动到指定位置 ok 4.面板自适应高度 4.更换定位依赖,自定义标签扫码入移动端可以定位并显示路线

---
 src/components/mobilemap/index.vue |  227 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 116 insertions(+), 111 deletions(-)

diff --git a/src/components/mobilemap/index.vue b/src/components/mobilemap/index.vue
index a41a9ae..7a3821e 100644
--- a/src/components/mobilemap/index.vue
+++ b/src/components/mobilemap/index.vue
@@ -29,9 +29,9 @@
     <!-- 活动窗口 -->
     <mobileActivity></mobileActivity>
     <!-- 盖住左下角 -->
-    <div class="cover_mobileMap">智慧社区</div>
+    <div class="cover_mobileMap">智慧校区</div>
     <!-- 指示器 -->
-    <div class="heights">{{ heights }}---{{ heights1 }}</div>
+    <!-- <div class="heights">{{ heights }}---{{ heights1 }}</div> -->
   </div>
 </template>
 <script>
@@ -87,6 +87,13 @@
         [116.41526036, 27.95352217, 100],
       ],
       areaLayer: null,
+      mapCenter: [115.871863, 28.743861, 400.0],
+      //控制4层缩放
+      onelayerNum: 80,
+      towlayerNum: 120,
+      threelayerNum: 160,
+      forlayerNum: 200,
+      frislayertHeight: 160, //默认高度
     };
   },
   computed: {
@@ -102,6 +109,7 @@
       "dimensionData",
       "areaLayer", //绿布
       "areaLayerSelect", //绿布颜色控制
+      "urlParameterData", //url 参数
     ]),
   },
   watch: {
@@ -118,6 +126,7 @@
     },
   },
   mounted() {
+    // return;
     var DC = global.DC;
     this.DC = DC;
 
@@ -284,8 +293,11 @@
         // if (height > 2000) {
         //   conBack(2000);
         // }
-        if (height <= 79 && isSet) {
-          conBack(79);
+        // if (height <= 79 && isSet) {
+        //   conBack(79);
+        // }
+        if (height <= that.onelayerNum - 1 && isSet) {
+          conBack(that.onelayerNum - 1);
         }
         // if (height > 220 && height <= 280 && isSet) {
         //   conBack(280);
@@ -296,12 +308,33 @@
         // if (height > 340 && height <= 400 && isSet) {
         //   conBack(400);
         // }
-        if (height > 200 && isSet) {
-          conBack(200);
+        // if (height > 200 && isSet) {
+        //   conBack(200);
+        // }
+        if (height > that.forlayerNum && isSet) {
+          conBack(that.forlayerNum);
         }
       });
 
       // 按钮事件
+      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 +343,31 @@
               const height = Math.ceil(
                 viewer.camera.positionCartographic.height
               );
+              // if (height > 180) {
+              //   butSetViews(160);
+              //   return;
+              // }
 
-              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 > 140) {
+              //   butSetViews(120);
+              //   return;
+              // }
 
+              // if (height > 100) {
+              //   butSetViews(80);
+              // }
+              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 +378,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);
               }
             }
           };
@@ -453,18 +419,6 @@
               },
               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;
@@ -478,7 +432,7 @@
             ii++;
             cutHeight = height - startHeight;
             // console.log(cutHeight);
-            console.log(height);
+            // console.log(height);
             that.heights = height;
             that.heights1 = cutHeight;
             // return;
@@ -840,6 +794,7 @@
               video: item.videourl,
               buts: ["定位", "实景", "图集"],
               panoramaurl: item.panoramaurl, //全景
+              fromTo: "mapClick",
             };
             // 定制化窗体
             // console.log(item, useData, "111111");
@@ -885,7 +840,7 @@
           };
           that.dimension == "2.5D"
             ? doit2(
-                [114.04020791, 27.62934732, 160.0],
+                [that.mapCenter[0], that.mapCenter[1], that.frislayertHeight],
                 // [114.04062292, 27.62666834, 220.0],
                 [
                   that.dimensionData.heading,
@@ -1071,6 +1026,47 @@
     DC.ready(initViewer);
     setTimeout(() => {
       that.butbut();
+      //判断是否有url参数
+      // console.log(that.urlParameterData);
+      if (typeof that.urlParameterData != "string") {
+        // console.log(that.urlParameterData);
+        that.$store.commit("initurlParameterLayer"); //初始化自定义标签图层
+        if (that.urlParameterData.methods == "goto") {
+          //url有定位的参数
+          // alert(that.urlParameterData.jd);
+          // alert(that.urlParameterData.wd);
+          // 创建标记
+          let dsa = {
+            list: [
+              {
+                name: that.urlParameterData.name || "无标题",
+                jd: that.urlParameterData.jd,
+                wd: that.urlParameterData.wd,
+              },
+            ],
+            clear: true,
+          };
+          that.$store.dispatch("addurlParameterLayerIcon", dsa);
+          // that.flytos(
+          //   //飞入标记
+          //   +that.urlParameterData.jd + 0.012,
+          //   +that.urlParameterData.wd
+          // );
+
+          let d = {
+            position: {},
+            lntLat: [+that.urlParameterData.jd, +that.urlParameterData.wd],
+            query: {
+              introduce: "自定义标签",
+              address: "",
+              ...(that.urlParameterData || {}),
+              lntLat: [+that.urlParameterData.jd, +that.urlParameterData.wd],
+            },
+            useJWD: true, //仅使用经纬度
+          };
+          that.$store.dispatch("setMobileWindows", d);
+        }
+      }
     }, 0);
   },
   methods: {
@@ -1085,6 +1081,15 @@
       };
       that.$store.dispatch("setMobileWindows", d);
     },
+    flytos(jd, wd) {
+      this.$store.dispatch("mapFlyTo", {
+        lntLat: [jd, wd, 120], //114.04020791, 27.62934732
+        heading: 0,
+        pitch: -90,
+        roll: 0,
+        noOpen: true,
+      });
+    },
   },
 };
 </script>

--
Gitblit v1.9.3