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 <= 79 && isSet) {
          conBack(79);
        }
        // if (height > 220 && height <= 280 && isSet) {
        //   conBack(280);
@@ -292,8 +296,8 @@
        // if (height > 340 && height <= 400 && isSet) {
        //   conBack(400);
        // }
        if (height > 400 && isSet) {
          conBack(400);
        if (height > 200 && isSet) {
          conBack(200);
        }
      });
@@ -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,106 @@
              }
            }
          };
        //滚轮事件
        // 指示器
        var ii = 1,
          startHeight = 0,
          cutHeight = 0,
          overii = function () {
            ii = 1;
            startHeight = 0;
            cutHeight = 0;
          },
          setViews = (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, // 定位的时间间隔
            });
            // 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;
        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 (isCameraTime) {
              clearTimeout(isCameraTime);
              isCameraTime = setTimeout(() => {
                takes();
                isCameraTime = null;
              }, 200);
            } else {
              isCameraTime = setTimeout(() => {
                takes();
                isCameraTime = null;
              }, 200);
            }
            let takes = () => {
              if (ii != 1) {
                if (cutHeight >= 0) {
                  if (cutHeight > 3) {
                    if (height >= 83 && height < 120) {
                      setViews(120);
                    }
                    if (height >= 123 && height < 160) {
                      setViews(160);
                    }
                    if (height >= 163 && height < 200) {
                      setViews(200);
                    }
                  }
                  //放大
                } else {
                  //缩小
                  if (cutHeight < -3) {
                    if (height <= 200 && height > 157) {
                      setViews(160);
                    }
                    if (height <= 157 && height > 117) {
                      setViews(120);
                    }
                    if (height <= 117 && height > 80) {
                      setViews(80);
                    }
                  }
                }
              }
            };
          }
        });
      };
      // 地图点击事件
@@ -781,7 +885,7 @@
          };
          that.dimension == "2.5D"
            ? doit2(
                [114.03928791, 27.62954732, 220.0],
                [114.04020791, 27.62934732, 160.0],
                // [114.04062292, 27.62666834, 220.0],
                [
                  that.dimensionData.heading,
@@ -991,4 +1095,12 @@
  height: 100%;
  position: relative;
}
.heights {
  background-color: #fff;
  font-size: 24px;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9999999;
}
</style>