shuishen
2022-01-07 0b3c77332ac4ce524ad4d8b8c3d8959a0f0cc14e
Merge branch 'master' of http://192.168.0.105:10010/r/school-web
5 files modified
83 ■■■■■ changed files
src/components/mobileCortrol/index.vue 4 ●●●● patch | view | raw | blame | history
src/components/mobileWindow/index.vue 19 ●●●●● patch | view | raw | blame | history
src/components/mobilemap/index.vue 25 ●●●●● patch | view | raw | blame | history
src/store/getters.js 2 ●●● patch | view | raw | blame | history
src/store/modules/mobile.js 33 ●●●●● patch | view | raw | blame | history
src/components/mobileCortrol/index.vue
@@ -3,13 +3,13 @@
    <div class="m-l-inbut zoom-in" @click="zoomIn()">
      <i class="el-icon-refresh"></i>
    </div>
    <div
    <!-- <div
      class="m-l-inbut zoom-in m-l-inbut-2d"
      :class="{ active: dimension == '3D' }"
      @click="zoomIn('3D')"
    >
      3&nbsp;&nbsp;维
    </div>
    </div> -->
    <div
      class="m-l-inbut zoom-in m-l-inbut-3d"
      :class="{ active: dimension == '2.5D' }"
src/components/mobileWindow/index.vue
@@ -7,8 +7,8 @@
    <div class="mobiletitle">
      {{ title }}
      <span class="mobile_audio" @click="openAudio" v-show="introduce">
        <i class="el-icon-video-play icon" v-show="!audioData"></i>
        <i class="el-icon-video-pause icon" v-show="audioData"></i>
        <i class="el-icon-video-play icon" v-show="!audioState"></i>
        <i class="el-icon-video-pause icon" v-show="audioState"></i>
        <!-- <div id="bdtts_div_id">
          <audio id="tts_autio_id" autoplay="autoplay">
            <source
@@ -92,7 +92,7 @@
      "MobileWindowsHide",
      "query",
      "MobileWindowChangeData",
      "audioData",
      "audioState",
    ]),
  },
  watch: {
@@ -155,6 +155,14 @@
            }
            if (k == "introduce") {
              this.introduce = queryData[k];
              if (this.introduce) {
                setTimeout(() => {
                  let Str = document.querySelector(
                    ".mobileBig-center-introduce"
                  ).innerText;
                  this.$store.dispatch("MSET_GETAUDIO", Str); //加入语音
                }, 20);
              }
            }
          }
        }
@@ -223,10 +231,7 @@
    },
    openAudio() {
      if (this.introduce) {
        let Str = document.querySelector(
          ".mobileBig-center-introduce"
        ).innerText;
        this.$store.dispatch("MSET_GETAUDIO", Str);
        this.$store.dispatch("MSET_GETAUDIOBEGIN");
      }
    },
  },
src/components/mobilemap/index.vue
@@ -268,8 +268,8 @@
        // if (height > 2000) {
        //   conBack(2000);
        // }
        if (height < 500 && isSet) {
          conBack(500);
        if (height < 200 && isSet) {
          conBack(200);
        }
        if (height > 6000 && isSet) {
          conBack(6000);
@@ -325,7 +325,7 @@
      const tileset = new that.DC.Tileset("/mx/tileset.json", {
        luminanceAtZenith: 0.5,
      });
      tilesetLayer.addOverlay(tileset);
      // tilesetLayer.addOverlay(tileset);
      // tilesetLayer.show = false;
      let silhouetteBlue =
@@ -473,7 +473,7 @@
      let startPoint;
      if (true) {
        startPoint = () => {
          let doit2 = (int) => {
          let doit2 = (int, h) => {
            viewer.camera.setView({
              // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
              // fromDegrees()方法,将经纬度和高程转换为世界坐标
@@ -487,18 +487,25 @@
              ),
              orientation: {
                // 指向
                heading: that.DC.Namespace.Cesium.Math.toRadians(108),
                heading: that.DC.Namespace.Cesium.Math.toRadians(h[0]),
                // 视角
                pitch: that.DC.Namespace.Cesium.Math.toRadians(-26.46),
                roll: 0.0,
                pitch: that.DC.Namespace.Cesium.Math.toRadians(h[1]),
                roll: h[2],
              },
            });
          };
          that.dimension == "2.5D"
            ? doit2([114.03928791, 27.62954732, 360.0])
            ? doit2(
                [114.03928791, 27.62954732, 360.0],
                [
                  that.dimensionData.heading,
                  that.dimensionData.pitch,
                  that.dimensionData.roll,
                ]
              )
            : // : doit([116.39038494750986, 39.902393222208644, 330.0]);
              // doit("建模");
              doit2([114.0351, 27.6314, 300.0]);
              doit2([114.0351, 27.6314, 300.0], [108, -26.46, 0.0]);
        };
      } else {
        startPoint = (val) => {
src/store/getters.js
@@ -20,7 +20,7 @@
  dimension: (state) => state.mobile.dimension, // 维度
  dimensionData: (state) => state.mobile.dimensionData, // 维度镜头数据
  perspectiveControl: (state) => state.mobile.perspectiveControl, ///视角控制:高度、角度  ()=>{}
  audioData: (state) => state.mobile.audioData, //文字转语音状态
  audioState: (state) => state.mobile.audioState, //文字转语音状态
};
const navigation = {
src/store/modules/mobile.js
@@ -30,7 +30,7 @@
    },
    // 默认起始点函数
    startPointFn: "",
    dimension: "3D", // 维度
    dimension: "2.5D", // 维度
    dimensionData: {
      // 维度镜头数据
      heading: 0,
@@ -47,6 +47,7 @@
    tilesetLayer: null, //瀑布流
    audioData: null, //语音
    audioState: false, //语音状态
  },
  mutations: {
    MSET_VIEWER(state, viewer) {
@@ -113,7 +114,6 @@
    //切换2D和2.5D
    MSET_DIMENSION(state, data) {
      //关闭弹窗
      //3d,2.5d转换事件
      state.dimension = data;
      if (data == "3D") {
@@ -162,7 +162,7 @@
        state.startPointFn(); //移动默认视角
        //2.5D视角限制
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 500;
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 200;
        // 最大
        state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = 6000;
        // 设置相机缩小时的速率
@@ -220,7 +220,7 @@
      } else if (state.dimension == "2.5D") {
        Flys = [
          +data.lntLat[0] + 0.01197,
          +data.lntLat[1] - 0.0001,
          +data.lntLat[1] - 0.00055,
          // +data.lntLat[1] - 0.0022,
          nowHeight,
        ];
@@ -298,13 +298,12 @@
      // })
      commit("MSET_POPUPDOM", popupsDom);
    },
    closeMobileWindowsDom({ state, commit }) {
    closeMobileWindowsDom({ state, commit, dispatch }) {
      if (!state.MobileWindowsHide && state.popupsDom) {
        state.popupsDom.closeOur();
        commit("MSET_MOBILEWINDOWSHIDE", true);
        if (state.audioData) {
          state.audioData = null;
          window.speechSynthesis.cancel();
          dispatch("MSET_GETAUDIOBEGIN", "notOpen");
        }
      } //cancel
    },
@@ -490,13 +489,23 @@
      });
    },
    MSET_GETAUDIO({ state, commit, dispatch }, val) {
      if (state.audioData) {
        state.audioData = null;
      state.audioData = new window.SpeechSynthesisUtterance();
      state.audioData.text = val;
      state.audioData.onstart = function (e) {
        state.audioState = true;
      };
      state.audioData.onend = function (event) {
        state.audioState = false;
      };
    },
    MSET_GETAUDIOBEGIN({ state, commit, dispatch }, val) {
      if (state.audioState) {
        window.speechSynthesis.cancel();
        state.audioState = false;
      } else {
        state.audioData = new window.SpeechSynthesisUtterance();
        state.audioData.text = val;
        window.speechSynthesis.speak(state.audioData);
        if (val != "notOpen") {
          window.speechSynthesis.speak(state.audioData);
        }
      }
    },
  },