<template>
  <div id="mars3dContainer" class="mars3d-container"></div>
</template>
<style lang="scss" scoped>
.mars3d-container {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
</style>

<script setup lang="ts">
import { onMounted } from "vue";
//导入mars3d主库
import * as mars3d from "mars3d";
onMounted(() => {
  var map = new mars3d.Map("mars3dContainer", {
    scene: {
      //默认视角参数
      center: {
        lat: 30.054604,
        lng: 108.885436,
        alt: 17036414,
        heading: 0,
        pitch: -90,
      },
      shadows: false, //是否启用日照阴影
      removeDblClick: true, //是否移除Cesium默认的双击事件
      //以下是Cesium.Viewer所支持的options【控件相关的写在另外的control属性中】
      sceneMode: 3, //3等价于Cesium.SceneMode.SCENE3D,
      //以下是Cesium.Scene对象相关参数
      showSun: true, //是否显示太阳
      showMoon: true, //是否显示月亮
      showSkyBox: true, //是否显示天空盒
      showSkyAtmosphere: true, //是否显示地球大气层外光圈
      fog: true, //是否启用雾化效果
      fxaa: true, //是否启用抗锯齿
      //以下是Cesium.Globe对象相关参数
      globe: {
        depthTestAgainstTerrain: false, //是否启用深度监测
        baseColor: "#546a53", //地球默认背景色
        showGroundAtmosphere: true, //是否在地球上绘制的地面大气
        enableLighting: false, //是否显示昼夜区域
      },
      //以下是Cesium.ScreenSpaceCameraController对象相关参数
      cameraController: {
        zoomFactor: 3.0, //鼠标滚轮放大的步长参数
        minimumZoomDistance: 1, //地球放大的最小值(以米为单位)
        maximumZoomDistance: 50000000, //地球缩小的最大值(以米为单位)
        enableRotate: true, //2D和3D视图下,是否允许用户旋转相机
        enableTranslate: true, //2D和哥伦布视图下,是否允许用户平移地图
        enableTilt: true, // 3D和哥伦布视图下,是否允许用户倾斜相机
        enableZoom: true, // 是否允许 用户放大和缩小视图
        enableCollisionDetection: true, //是否允许 地形相机的碰撞检测
      },
    },
    control: {
      baseLayerPicker: true, //basemaps底图切换按钮
      homeButton: true, //视角复位按钮
      sceneModePicker: true, //二三维切换按钮
      navigationHelpButton: true, //帮助按钮
      fullscreenButton: true, //全屏按钮
    },
    terrain: {
      url: "http://data.mars3d.cn/terrain",
      show: true,
    },
  });
});
</script>