From d805339695bf1d25a333977445e1821508654d13 Mon Sep 17 00:00:00 2001
From: TreeWish <1131093754@qq.com>
Date: 星期二, 28 二月 2023 10:09:30 +0800
Subject: [PATCH] 解决分屏切换2D显示不全

---
 src/components/MapDiv.vue |  163 ++++++++++++++++++++++++++----------------------------
 1 files changed, 79 insertions(+), 84 deletions(-)

diff --git a/src/components/MapDiv.vue b/src/components/MapDiv.vue
index f57f2e6..b5149b3 100644
--- a/src/components/MapDiv.vue
+++ b/src/components/MapDiv.vue
@@ -10,10 +10,7 @@
     >
       <mapsdk></mapsdk>
     </div>
-    <div
-      id="ds"
-      v-show="isShowDs"
-    ></div>
+    <div id="ds" v-show="isShowDs"></div>
     <!--openLayers鏄剧ず鐣岄潰-->
     <div
       v-show="isOlMapFlag"
@@ -27,13 +24,13 @@
 </template>
 
 <script>
-import mapsdk from './mapsdk';
-import mapol from './mapol';
-import { transform } from 'ol/proj';
-import ol from 'ol';
-import $ from 'jquery';
+import mapsdk from "./mapsdk"
+import mapol from "./mapol"
+import { transform } from "ol/proj"
+import ol from "ol"
+import $ from "jquery"
 export default {
-  name: '',
+  name: "",
   components: {
     mapsdk,
     mapol,
@@ -51,156 +48,154 @@
         250000, 200000, 100000, 50000, 17000, 9000, 5000, 2000, 1000, 500, 200,
         100, 50, 25, 10, 0,
       ],
-    };
+    }
   },
   methods: {
     changeMap(res) {
-      this.isSplitFlag = res;
+      this.isSplitFlag = res
       switch (res) {
         case 1:
-          this.isShowCeMap = true;
-          this.isShowDs = true;
-          this.isOlMapFlag = true;
-          this.isShowOlMap = true;
-          this.isSdkMapFlag = true;
-          var that = this;
+          this.isShowCeMap = true
+          this.isShowDs = true
+          this.isOlMapFlag = true
+          this.isShowOlMap = true
+          this.isSdkMapFlag = true
+          var that = this
 
           setTimeout(function () {
-            window.map.updateSize();
-            that.showSplitMap();
-          }, 500);
+            window.map.updateSize()
+            that.showSplitMap()
+          }, 500)
 
-          break;
+          break
         case 2:
-          this.isSdkMapFlag = false;
-          this.isShowDs = false;
-          this.isShowOlMap = false;
-          this.isOlMapFlag = true;
+          this.isSdkMapFlag = false
+          this.isShowDs = false
+          this.isShowOlMap = false
+          this.isOlMapFlag = true
           setTimeout(function () {
-            window.map.updateSize();
-          }, 300);
-          break;
+            window.map.updateSize()
+          }, 300)
+          break
         case 3:
-          this.isSdkMapFlag = true;
-          this.isShowDs = false;
-          this.isShowOlMap = false;
-          this.isOlMapFlag = false;
-          this.isShowCeMap = false;
-          break;
+          this.isSdkMapFlag = true
+          this.isShowDs = false
+          this.isShowOlMap = false
+          this.isOlMapFlag = false
+          this.isShowCeMap = false
+          break
       }
     },
     showSplitMap() {
-      var that = this;
-      $('#mapView')
+      var that = this
+      $("#mapView")
         .off()
-        .on('mousemove', function () {
+        .on("mousemove", function () {
           if (that.isSplitFlag == 1) {
-            window.Viewer.camera.changed.addEventListener(that.sdktool());
+            window.Viewer.camera.changed.addEventListener(that.sdktool())
           }
         })
-        .on('mouseout', function () {
+        .on("mouseout", function () {
           if (that.isSplitFlag == 1) {
-            window.Viewer.camera.changed.removeEventListener(that.sdktool());
+            window.Viewer.camera.changed.removeEventListener(that.sdktool())
           }
-        });
+        })
       let mapZoomAndMove = function (event) {
-        var position = window.map.getView().getCenter();
+        var position = window.map.getView().getCenter()
 
         // var pos = transform(position, 'EPSG:3857', 'EPSG:4326');
-        var pos = position;
-        var level = that.getHeight(parseInt(window.map.getView().getZoom()));
+        var pos = position
+        var level = that.getHeight(parseInt(window.map.getView().getZoom()))
         window.Viewer.camera.setView({
           destination: Cesium.Cartesian3.fromDegrees(pos[0], pos[1], level),
-        });
-      };
-      $('#map')
+        })
+      }
+      $("#map")
         .off()
-        .on('mousemove', function () {
+        .on("mousemove", function () {
           if (that.isSplitFlag == 1) {
-            that.olzoomAndMove(mapZoomAndMove);
+            that.olzoomAndMove(mapZoomAndMove)
           }
         })
-        .on('mouseout', function () {
+        .on("mouseout", function () {
           if (that.isSplitFlag == 1) {
-            that.clearolzoomAndMove();
+            that.clearolzoomAndMove()
           }
-        });
+        })
     },
     clearolzoomAndMove() {
-      let registerOnZoomArr = window.map.get('registerOnZoom');
+      let registerOnZoomArr = window.map.get("registerOnZoom")
       if (registerOnZoomArr && registerOnZoomArr.length > 0) {
         for (let i = 0; i < registerOnZoomArr.length; i++) {
-          window.map.un('moveend', registerOnZoomArr[i]);
+          window.map.un("moveend", registerOnZoomArr[i])
         }
       }
     },
     olzoomAndMove(eventListen, notListenMove) {
       // 璁板綍鍦板浘缂╂斁锛岀敤浜庡垽鏂嫋鍔�
       window.map.lastZoom =
-        window.map.lastZoom || window.map.getView().getZoom();
+        window.map.lastZoom || window.map.getView().getZoom()
       // 鍦板浘缂╂斁浜嬩欢
       let registerOnZoom = function (e) {
         // 涓嶇洃鍚湴鍥炬嫋鍔ㄤ簨浠�
         if (notListenMove) {
           if (window.map.lastZoom != window.map.getView().getZoom()) {
-            eventListen && eventListen(e);
+            eventListen && eventListen(e)
           }
         } else {
-          eventListen && eventListen(e);
+          eventListen && eventListen(e)
         }
-        window.map.lastZoom = window.map.getView().getZoom();
-      };
+        window.map.lastZoom = window.map.getView().getZoom()
+      }
       // 淇濆瓨缂╂斁鍜屾嫋鍔ㄤ簨浠跺璞★紝鐢ㄤ簬鍚庢湡绉婚櫎
-      let registerOnZoomArr = map.get('registerOnZoom') || [];
+      let registerOnZoomArr = map.get("registerOnZoom") || []
 
-      registerOnZoomArr.push(registerOnZoom);
+      registerOnZoomArr.push(registerOnZoom)
 
       // 浣跨敤鍦板浘 set 鏂规硶淇濆瓨浜嬩欢瀵硅薄
-      window.map.set('registerOnZoom', registerOnZoomArr);
+      window.map.set("registerOnZoom", registerOnZoomArr)
 
       // 鐩戝惉鍦板浘绉诲姩缁撴潫浜嬩欢
-      window.map.on('moveend', registerOnZoom);
+      window.map.on("moveend", registerOnZoom)
 
-      return eventListen;
+      return eventListen
     },
     sdktool() {
-      if (this.isSplitFlag != 1) return;
-      var position = window.Viewer.camera.position;
-      var ellipsoid = window.Viewer.scene.globe.ellipsoid;
-      var cartographic = ellipsoid.cartesianToCartographic(position);
-      var lat = Cesium.Math.toDegrees(cartographic.latitude);
-      var lng = Cesium.Math.toDegrees(cartographic.longitude);
-      var level = this.getLevel(cartographic.height);
+      if (this.isSplitFlag != 1) return
+      var position = window.Viewer.camera.position
+      var ellipsoid = window.Viewer.scene.globe.ellipsoid
+      var cartographic = ellipsoid.cartesianToCartographic(position)
+      var lat = Cesium.Math.toDegrees(cartographic.latitude)
+      var lng = Cesium.Math.toDegrees(cartographic.longitude)
+      var level = this.getLevel(cartographic.height)
       var value
       // window.map
       //   .getView()
       //   .setCenter(transform([lng, lat], 'EPSG:4326', 'EPSG:3857'));
-      window.map
-        .getView()
-        .setCenter([lng, lat]);
-      window.map.getView().setZoom(level);
+      window.map.getView().setCenter([lng, lat])
+      window.map.getView().setZoom(level)
     },
     getLevel(height) {
       for (var i = 1, len = this.levelArray.length; i < len - 1; i++) {
         if (height >= (this.levelArray[i] + this.levelArray[i + 1]) / 2) {
-          return i;
+          return i
         }
       }
-      return this.levelArray.length - 1;
+      return this.levelArray.length - 1
     },
     getHeight(level) {
       if (level > 0 && level < 23) {
-        return this.levelArray[level];
+        return this.levelArray[level]
       }
-      return this.levelArray[this.levelArray.length - 1];
+      return this.levelArray[this.levelArray.length - 1]
     },
   },
   mounted() {
-    this.$bus.$on('changemap', (e) => {
-      this.changeMap(e);
-    });
+    this.$bus.$on("changemap", e => {
+      this.changeMap(e)
+    })
   },
-};
+}
 </script>
 
 <style scoped>

--
Gitblit v1.9.3