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

vue3 + vite + ts 集成mars3d

vue3 + vite + ts 集成mars3d

文章目录

  • vue3 + vite + ts 集成mars3d
  • 前言
  • 一、创建一个vue3 + vite + ts项目
  • 二、引入mars3d相关依赖
  • 三、vite.config.ts 相关配置
  • 四、 新建DIV容器 + 创建地图


前言

使用mars3d过程中,需要集成mars3d到自己的项目中,mars3d开发教程中已经有集成好的项目模板
http://mars3d.cn/doc.html
项目模板gitte地址:https://gitee.com/marsgis/mars3d-vue-template/tree/master/mars3d-vue3-vite
如果不想用官方的模板就需要自己集成


一、创建一个vue3 + vite + ts项目

如何创建项目参考网上的教程,这里就不做详细的说明,我们直接步入正题。

二、引入mars3d相关依赖

这里使用npm的方式引用
1、引入mars3d

npm install mars3d --save

2、引入mars3d-cesium

npm install mars3d-cesium --save

到目前为止mars3d最主要的依赖库已经安装好了

三、vite.config.ts 相关配置

参考教程:安装mars3d vite插件库
具体配置如下
在这里插入图片描述
到这步基本配置就完成了

四、 新建DIV容器 + 创建地图

1、在app.vue中使用组件main-view
在这里插入图片描述
2、创建main-view组件

<template><div id="mars3dContainer" class="mars3d-container"></div>
</template><script lang="ts" setup>
import { onMounted,reactive } from "vue";
import * as mars3d from "mars3d";onMounted(() => {var mapOptions = {basemaps: [{ name: "天地图", type: "tdt", layer: "img_d", show: true }],
};
var map = new mars3d.Map("mars3dContainer", mapOptions);});
};
</script><style lang="less" scoped>
</style>

到这步不出意外的话Mars3d地球已经出来了。

其它问题:
这是基本配置,可以在public文件夹下新建config文件,文件夹下新建config.json文件
http://mars3d.cn/config/config.json

main-view组件改动一下

<template><div id="mars3dContainer" class="mars3d-container"></div>
</template><script lang="ts" setup>
import { onMounted,reactive } from "vue";
import * as mars3d from "mars3d";onMounted(() => {const configUrl = `${process.env.BASE_URL}config/config.json`;mars3d.Util.fetchJson({ url: configUrl }).then((data) => {initMars3d(data.map3d);});
});// const router = useRouter()let map: any;
const initMars3d = (option: any) => {map = new mars3d.Map("mars3dContainer", option);// 开场动画// map.openFlyAnimation();// 针对不同终端的优化配置if (mars3d.Util.isPCBroswer()) {map.zoomFactor = 2.0; // 鼠标滚轮放大的步长参数// IE浏览器优化if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 0) {map.viewer.targetFrameRate = 20; // 限制帧率map.scene.requestRenderMode = false; // 取消实时渲染}} else {map.zoomFactor = 5.0; // 鼠标滚轮放大的步长参数// 移动设备上禁掉以下几个选项,可以相对更加流畅map.scene.requestRenderMode = false; // 取消实时渲染map.scene.fog.enabled = false;map.scene.skyAtmosphere.show = false;map.scene.globe.showGroundAtmosphere = false;}// //二三维切换不用动画if (map.viewer.sceneModePicker) {map.viewer.sceneModePicker.viewModel.duration = 0.0;}
};
</script><style lang="less" scoped>
.mars3d-container {width: 100%;height: 100%;overflow: hidden;}
</style>

基本上一个炫酷的地球就完成了
如果控制台报 资源图片没有找到 404错误,就把官方示例下载下来 ,把public/img文件拷贝到 对应你的问夹下就可以了
附:整个项目结构目录
在这里插入图片描述

http://www.lryc.cn/news/18953.html

相关文章:

  • 跨境卖家必看的沃尔玛Walmart商家入驻教程
  • 【GANs】什么是饱和损失函数 Non-Saturating LossFunction
  • USB接口虚拟网卡
  • 基于SpringBoot的外卖项目的优化
  • Ubuntu20.04/22.04 ESP32 命令行开发环境配置
  • Kali Linux使用Metasploit生成木马入侵安卓系统
  • 数据库复习1
  • 18. linux系统基础
  • ssh远程登录报错:kex_exchange_identification: Connection closed by remote host
  • Quartus II 的入门级使用
  • Java EE|TCP/IP协议栈之TCP协议工作机制上
  • 智能化人机协作 遮挡情况下准确识别目标信息
  • React(一):初识React、类组件、jsx的基础语法
  • 2023-2-24 刷题情况
  • 测试员拿到新项目怎么着手测试?不要慌,照做准没错
  • 通过cfssl自签证书https证书
  • openEuler部署Ceph集群(块存储)
  • npm install vue2-ace-editor 安装报错
  • 【PyQt5图形界面编程(2)】:创建工程
  • ansible实战应用系列教程9:管理inclusions
  • MyBatis学习笔记(五) —— MyBatis获取参数值的两种方式
  • go module构建项目
  • 已经准备上千道软件测试面试题了,建议大家收藏!!!还有视频详解!
  • C++设计模式(19)——访问者模式
  • ChatGPT 的工作原理:机器人背后的模型
  • FreeRTOS入门(04):中断、内存、追踪与调试
  • 【C语言】带你彻底理解指针(1)
  • C/C++ 中 JSON 库的使用 (CJSON/nlohmann)
  • 【Opencv项目实战】目标检测:自动检测出现的所有动态目标
  • 活动报名:Tapdata Cloud V3 最新功能全解与核心应用场景演示