管道基础大数据平台系统开发-【前端】-新系統界面
src/components/MapDiv.vue
@@ -10,7 +10,10 @@
    >
      <mapsdk></mapsdk>
    </div>
    <div id="ds" v-show="isShowDs"></div>
    <div
      id="ds"
      v-show="isShowDs"
    ></div>
    <!--openLayers显示界面-->
    <div
      v-show="isOlMapFlag"
@@ -53,6 +56,7 @@
  methods: {
    changeMap(res) {
      this.isSplitFlag = res
      this.getMapViewCenter(this.isSplitFlag);
      switch (res) {
        case 1:
          this.isShowCeMap = true
@@ -73,8 +77,11 @@
          this.isShowDs = false
          this.isShowOlMap = false
          this.isOlMapFlag = true
          var val = this.$store.state.Map3;
          setTimeout(function () {
            window.map.updateSize()
            window.map.getView().setCenter([val[0], val[1]])
            window.map.getView().setZoom(val[2])
          }, 300)
          break
        case 3:
@@ -83,8 +90,32 @@
          this.isShowOlMap = false
          this.isOlMapFlag = false
          this.isShowCeMap = false
          var val = this.$store.state.Map3;
          window.Viewer.camera.setView({
            destination: Cesium.Cartesian3.fromDegrees(val[0], val[1], val[2]),
          })
          break
      }
    },
    getMapViewCenter(res) {
      switch (res) {
        case 2:
          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)
          this.$store.state.Map3 = [lng, lat, level]
          break;
        case 3:
          var position = window.map.getView().getCenter()
          var level = this.getHeight(parseInt(window.map.getView().getZoom()))
          this.$store.state.Map3 = [position[0], position[1], level]
          break;
      }
    },
    showSplitMap() {
      var that = this
@@ -106,6 +137,7 @@
        // var pos = transform(position, 'EPSG:3857', 'EPSG:4326');
        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),
        })
@@ -168,6 +200,7 @@
      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()
@@ -192,7 +225,12 @@
  },
  mounted() {
    this.$bus.$on("changemap", e => {
      this.changeMap(e)
      if (this.isSplitFlag == 1) {
        this.changeMap(3)
      } else {
        this.changeMap(e)
      }
    })
  },
}