liuyg
2022-02-09 f1745589a9a10373e3372a47b3ba47358ea60698
+设置2.5维度的高度及缩放
2 files modified
114 ■■■■ changed files
src/components/mobilemap/index.vue 112 ●●●● patch | view | raw | blame | history
src/store/modules/mobile.js 2 ●●● patch | view | raw | blame | history
src/components/mobilemap/index.vue
@@ -30,6 +30,8 @@
    <mobileActivity></mobileActivity>
    <!-- 盖住左下角 -->
    <div class="cover_mobileMap">智慧社区</div>
    <!-- 指示器 -->
    <!-- <div class="heights">{{ heights }}---{{ heights1 }}</div> -->
  </div>
</template>
<script>
@@ -41,6 +43,8 @@
  data() {
    return {
      butbut: null,
      heights: 0,
      heights1: 0,
      DC: "",
      bigPopup: {
        width: 0,
@@ -280,8 +284,8 @@
        // if (height > 2000) {
        //   conBack(2000);
        // }
        if (height <= 220 && isSet) {
          conBack(220);
        if (height <= 190 && isSet) {
          conBack(190);
        }
        // if (height > 220 && height <= 280 && isSet) {
        //   conBack(280);
@@ -307,12 +311,12 @@
                viewer.camera.positionCartographic.height
              );
              if (height > 370) {
              if (height > 360) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
                    viewer.camera.positionCartographic.latitude,
                    340
                    330
                  ),
                  orientation: {
                    // 指向
@@ -326,12 +330,12 @@
                return;
              }
              if (height > 310) {
              if (height > 300) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
                    viewer.camera.positionCartographic.latitude,
                    280
                    270
                  ),
                  orientation: {
                    // 指向
@@ -345,12 +349,12 @@
                return;
              }
              if (height > 250) {
              if (height > 240) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
                    viewer.camera.positionCartographic.latitude,
                    220
                    200
                  ),
                  orientation: {
                    // 指向
@@ -371,12 +375,12 @@
                viewer.camera.positionCartographic.height
              );
              if (height <= 250) {
              if (height <= 240) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
                    viewer.camera.positionCartographic.latitude,
                    280
                    270
                  ),
                  orientation: {
                    // 指向
@@ -388,12 +392,12 @@
                });
              }
              if (height > 250 && height <= 310) {
              if (height > 240 && height <= 300) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
                    viewer.camera.positionCartographic.latitude,
                    340
                    330
                  ),
                  orientation: {
                    // 指向
@@ -405,7 +409,7 @@
                });
              }
              if (height > 310 && height < 370) {
              if (height > 300 && height < 360) {
                viewer.camera.setView({
                  destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(
                    viewer.camera.positionCartographic.longitude,
@@ -423,6 +427,78 @@
              }
            }
          };
        //滚轮事件
        // 指示器
        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();
        };
        viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
          if (that.dimension == "2.5D") {
            // console.log(e);
            const height = Math.ceil(viewer.camera.positionCartographic.height);
            if (ii == 1 && startHeight == 0) {
              startHeight = height;
            }
            ii++;
            cutHeight = height - startHeight;
            // console.log(cutHeight);
            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 (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);
                  }
                }
              }
            }
          }
        });
      };
      // 地图点击事件
@@ -781,7 +857,7 @@
          };
          that.dimension == "2.5D"
            ? doit2(
                [114.03928791, 27.62954732, 220.0],
                [114.03928791, 27.62954732, 200.0],
                // [114.04062292, 27.62666834, 220.0],
                [
                  that.dimensionData.heading,
@@ -991,4 +1067,12 @@
  height: 100%;
  position: relative;
}
.heights {
  background-color: #fff;
  font-size: 24px;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9999999;
}
</style>
src/store/modules/mobile.js
@@ -224,7 +224,7 @@
        state.startPointFn(); //移动默认视角
        state.areaLayer.show = true; //绿布
        //2.5D视角限制
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 220;
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 190;
        // 最大
        state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = 400;
        // 设置相机缩小时的速率