当前位置: 首页 > article >正文

【Mars3D项目实战开发】vue3+vite搭建配置项3维地球

Mars3D有很多很强大的功能,可以在地球上实现很多炫酷的3D效果。今天给大家分享一个最基础的功能,根据配置项内容创建3D地球。

1.话不多说,先展示

Mars3D基础地球

2.设计思路

根据项目需求要求,使用vue3+vite搭建框架,使用Mars3d,动态创建一个可调整色调的3维地球。

3.具体代码

<script setup>
import * as Cesium from "mars3d-cesium";
import * as mars3d from "mars3d";
//引入cesium基础库
import "mars3d-cesium/Build/Cesium/Widgets/widgets.css";
//导入mars3d主库
import "mars3d/mars3d.css"; //v3.8.6及之前版本使用 import "mars3d/dist/mars3d.css";

//导入mars3d插件(按需使用,需要先npm install)
import "mars3d-space";
import { ref, onMounted, reactive } from "vue";

var map = reactive(null);

var mapOptions = {
  terrain: {
    //地形
    url: "http://data.mars3d.cn/terrain",
    show: true,
  },
  scene: {
    // center: {
    //   "lat": 37.35506,
    //   "lng": 112.401622,
    //   "alt": 41355.9,
    //   "heading": 2.3,
    //   "pitch": -35.5
    // },//默认相机视角
    showSun: false, //是否显示太阳
    showMoon: false, //是否显示月亮
    showSkyBox: true, //是否显示天空盒
    showSkyAtmosphere: false, //是否显示地球大气层外光圈
    contextmenu: false,
    fog: false, //是否启用雾化效果
    globe: {
      showGroundAtmosphere: false,
      enableLighting: false,
      depthTestAgainstTerrain: true, // 地形检测,不加无法投射到地形上
    },
    fxaa: true, // 不开启抗锯齿,可视域会闪烁
    skyBox: {
      type: "ground",
      sources: {
        positiveX: "../assets/imgs/skybox/lantian/Right.jpg",
        negativeX: "../assets/imgs/skybox/lantian/Left.png",
        positiveY: "../assets/imgs/skybox/lantian/Front.png",
        negativeY: "../assets/imgs/skybox/lantian/Back.png",
        positiveZ: "../assets/imgs/skybox/lantian/Up.png",
        negativeZ: "../assets/imgs/skybox/lantian/Down.png",
      },
    },
  },

  basemaps: [
    {
      name: "天地图电子底图",
      layer: "vec_d",
      type: "tdt",
      invertColor: false, // 反向颜色 color.r = 1.0 - color.r
      filterColor: "#0950a9", // 滤镜颜色  color.r = color.r * filterColor.r
      brightness: 2, // 亮度
      contrast: 0.6, // 对比度
      hue: 0.1, // 色彩
      saturation: 1, // 饱和度
      gamma: 0.2, // 伽马值
      opacity: 1, // 透明度
      minimumLevel: 0,
      maximumLevel: 18,
      key: ["填写自己申请的天地图key"],
      show: true,
    },
  ],
};

onMounted(() => {
  map = new mars3d.Map("mars3dContainer", mapOptions);
});

</script>

<template>
  <div id="mars3dContainer" class="mars3dBox"></div>
</template>

<style scoped>
.mars3dBox {
  width: 100%;
  height: 100%;
}
</style>


http://www.kler.cn/a/463652.html

相关文章:

  • 17爬虫:关于DrissionPage相关内容的学习01
  • JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示
  • 在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)
  • Ethernet 系列(12)-- 基础学习::SOME/IP
  • 计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask
  • 40% 降本:多点 DMALL x StarRocks 的湖仓升级实战
  • Redis四种模式在Spring Boot框架下的配置
  • xxxPipeline.from_pretrained(model_path)加载自定义路径下的模型结构
  • 异步背后的奥秘:事件循环
  • K8s中的监控
  • 【智能数据驱动未来】2025年计算机科学技术与机器学习、大数据国际会议 (CSTMLBD 2025)
  • 数组方法 | vue修改数组
  • Docker 安装与配置 Nginx
  • 如何将CSDN文章 导出为 PDF文件
  • Fedora安装docker
  • LeetCode 力扣 热题 100道(二十七)除自身以外数组的乘积(C++)
  • CMS漏洞靶场攻略
  • Kubernetes第二天
  • JavaScript的diff库详解(示例:vue项目实现两段字符串比对标黄功能)
  • 一文读懂:区块链的原理、技术、应用领域
  • 大型语言模型在金融市场中的预测能力
  • [AI] 深度学习的“黑箱”探索:从解释性到透明性
  • 管理员登录 Ubuntu 图形界面失败
  • Windows提示错误wmvcore.dll缺失要怎么解决?
  • 【每日学点鸿蒙知识】初始化BigInt、包体积瘦身、Tabs嵌套Grid、老年化适配、Release打包失败
  • 【Oracle】数据库 安装与【Qt】驱动编译与连接