surprise
2024-04-19 0f3826f42faea5e3542e56f61e9497e18fe56c54
src/components/viewer.vue
@@ -1,5 +1,11 @@
<template>
  <div>
    <div class="imgbox"
         v-if="showFlyimg">
      <img src="../assets/image/feixingqi.png"
           alt="" />
    </div>
    <div id="app1"></div>
  </div>
</template>
@@ -22,7 +28,9 @@
export default {
  name: "App",
  data () {
    return {};
    return {
      showFlyimg: false,
    };
  },
  methods: {
    init () {
@@ -61,6 +69,7 @@
          window.Viewer=webgis.Viewer;
          window.viewer=webgis.Viewer;
          window.Cesium=Cesium;
          let that=this;
          window.layers=window.sgworld.Viewer.scene.imageryLayers;
          // const blackMarble = layers.addImageryProvider(
@@ -95,6 +104,34 @@
              heading: 1.249372341578318,
              pitch: -0.7222154573481174,
              roll: 0,
            },
            complete: function callback () {
              viewer.camera.changed.addEventListener(() => {
                // 视高 km
                let alt=(
                  viewer.camera.positionCartographic.height/1000
                ).toFixed(2);
                // 方位角
                let heading=Cesium.Math.toDegrees(
                  viewer.camera.heading
                ).toFixed(2);
                // 俯仰角
                let pitch=Cesium.Math.toDegrees(viewer.camera.pitch).toFixed(
                  2
                );
                // 翻滚角
                let roll=Cesium.Math.toDegrees(viewer.camera.roll).toFixed(2);
                // 级别
                let level=0;
                let tileRender=viewer.scene._globe._surface._tilesToRender;
                if(tileRender&&tileRender.length>0) {
                  level=viewer.scene._globe._surface._tilesToRender[0]._level;
                }
                // let str = `级数:${level} 视高:${alt}km  方位角:${heading}° 俯仰角:${pitch}° 翻滚角:${roll}°`;
                console.log(pitch);
                that.showFlyimg=pitch>-25? true:false;
                // console.log(that.showFlyimg);
              });
            },
          });
          let urldian1=
@@ -139,28 +176,6 @@
            }
          });
          // window.Viewer.shadows = false;
          viewer.camera.changed.addEventListener(() => {
            // 视高 km
            let alt = (
              viewer.camera.positionCartographic.height / 1000
            ).toFixed(2);
            // 方位角
            let heading = Cesium.Math.toDegrees(viewer.camera.heading).toFixed(
              2
            );
            // 俯仰角
            let pitch = Cesium.Math.toDegrees(viewer.camera.pitch).toFixed(2);
            // 翻滚角
            let roll = Cesium.Math.toDegrees(viewer.camera.roll).toFixed(2);
            // 级别
            let level = 0;
            let tileRender = viewer.scene._globe._surface._tilesToRender;
            if (tileRender && tileRender.length > 0) {
              level = viewer.scene._globe._surface._tilesToRender[0]._level;
            }
            let str = `级数:${level} 视高:${alt}km  方位角:${heading}° 俯仰角:${pitch}° 翻滚角:${roll}°`;
            console.log(str);
          });
          //深度检测
          window.Sgworld.Analysis.depthTestAgainstTerrain(true);
          /*
@@ -298,6 +313,10 @@
          SC27: () => import("@/components/props/situationComparison10-4"),
          SC28: () => import("@/components/props/situationComparison7-10"),
          SC29: () => import("@/components/props/situationComparison7-11"),
          SC30: () => import("@/components/props/situationComparison7-12"),
          SC31: () => import("@/components/props/militaryVIdeo"), //军事标绘
        },
      });
    },
@@ -309,6 +328,19 @@
</script>
<style>
.imgbox {
  position: absolute;
  /* background-color: #fff; */
  /* opacity: 0.2;. */
  /* top:50px; */
  width: 100%;
  height: 500px;
}
img {
  width: 100%;
  height: 100%;
  -webkit-user-drag: none;
}
#app1 {
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;