# mars3d-vue-app
**Repository Path**: alecx/mars3d-vue-app
## Basic Information
- **Project Name**: mars3d-vue-app
- **Description**: 基于Vue3和Mars3D开发的三维地球app
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 10
- **Created**: 2024-03-14
- **Last Updated**: 2024-03-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
基于Vue3和Mars3D🌎开发的三维地球app
## 项目介绍
三维地球 App 是基于[Mars3D 平台](http://mars3d.cn)做的一个移动端应用,提供的一个移动端项目模版,包含常用基础地图功能,方便快速搭建三维地图产品,敏捷开发,可复用,支持各种配置,适合各种场景使用。
## 项目特性
- **最新技术栈**:使用 Vue3/Vite 等前端前沿技术开发
- **TypeScript**: 应用程序级 JavaScript 的语言
## 视频讲解
建议先看一遍视频讲解,再实际操作。您可以[新页面查看高清视频](https://www.bilibili.com/video/BV1iY4y1t7jk/)
## 下载运行项目
### 下载代码
- [Github](https://github.com/marsgis/mars3d-vue-app)
```
git clone git@github.com:marsgis/mars3d-vue-app.git
```
- [Gitee](https://gitee.com/marsgis/mars3d-vue-app):国内码云,下载速度快些。
```
git clone git@gitee.com:marsgis/mars3d-vue-app.git
```
### 运行环境
- 推荐使用 vscode,安装参考[开发环境搭建教程](/guide/start/env.html)
- 安装 vscode 插件,推荐安装 volar(并禁用 vetur)、ESlint 、 Prettier
- 配置 vscode 参数
```json
// setting.json相关配置
{
"eslint.format.enable": true,
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
```
### 运行命令
请将机器Node版本升级到v16及以上版本
#### 首次运行前安装依赖
```
npm install
//或使用代理
npm i --registry=http://registry.taobao.org
```
#### 启动开发环境
```
npm run serve
```
#### 编译构建
```
npm run build
```
### 打包为安卓和苹果app的流程
#### 编译发布版文件
1. 执行命令`npm run build:app`
2. 将dist目录文件剪切覆盖至HBuilderX工程,假设是pack目录
#### HBuilderX打包apk
1. 通过HBuilderX打开pack目录
2. 根据需要调整manifest.json配置(如id、app名称等)
3. 通过HBuilderX打开菜单“打包”->"云打包"打包pak文件
## 运行效果
访问[三维地球 APP 软件](http://mars3d.cn/project/app/index.html) 在线体验效果和功能(电脑端访问时需要打开 F12 手机模拟)
手机可以扫描直接体验:
## 项目架构
### 技术选型
- [node](http://nodejs.org/) 和 [git](https://git-scm.com/) :项目开发环境
- [Vue3](https://v3.cn.vuejs.org/api/):开发框架
- [Vite](https://vitejs.dev/):开发环境
- [TypeScript](https://www.tslang.cn/):开发语言
- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
- [Vant](https://youzan.github.io/vant/#/zh-CN/):UI 控件库
- [ESlint](https://eslint.bootcss.com/):代码检查工具
- [IconPark](https://iconpark.oceanengine.com/official):UI 图标库
> 需要有一定的知识储备,包括 vue3.0 中的 composition Api 模式等,建议浏览下[Web 前端知识视频讲解](https://www.bilibili.com/video/BV1xr4y1U73r/)
### 主要目录说明
```
mars3d-vue-app
└───public 静态资源
│ └───config 地图的配置文件等
│ └───img 图片资源
│
└───src 主要项目代码
│ └───common 公共核心文件
│ └───components 公共组件(重要)
│ └───misc ts模块定义
│ └───utils 工具方法
│ └───views 存放路由页面(重要)
│ └───main.ts 主入口文件
│ └───routes.ts 路由配置文件
│
│─── package.json 项目配置信息
│─── vite.config.ts vite 配置文件
│─── tsconfig.js ts 配置文件
│─── .eslintrc.js eslint配置文件
└─── index.html 页面入口
```
## 开发中常见问题
### 1. 如何切换 mars3d 到授权版
参考 [获取Mars3D](http://mars3d.cn/dev/guide/start/download.html)中“从 Mars3D官网 下载获取”章节介绍。
流程大概是:
- 配置后,无需改动源码,在项目代码中使用时与使用npm包是一样的方式,如 `import * as mars3d from "mars3d";`
- 将 npm 安装后的`node_modules/mars3d/`下的所有文件拷贝一份放在`packages/mars3d/`目录。
- 将`mars3d-sdk.rar`离线包内文件 覆盖至`packages/mars3d/dist/`目录下。
- 修改`package.json`中mars3d包配置为:` "mars3d": "file:packages/mars3d",`

### 2. 局域网离线使用时注意事项
平台所有代码层面来说支持离线运行和使用的,但需要注意的是离线时的地图服务的相关处理。
如果局域网内有相关地形、卫星底图服务可以按内网服务类型和 URL 地址替换下`config.json`或`构造Map的代码中`的默认地形和底图。
如果局域网内没有相关服务,可以按下面处理:
- 修改 config.json 中`terrain`配置中,将已有的`"show": true`配置,改为`"show": false`
- 修改 config.json 中`basemaps`数组配置中,将已有的`"show": true`的图层,将该值改为`"show": false` ,并将单张图片或离线地图加上`"show": true`,并修改相关 URL 地址。
- 您也可以参考教程[发布三维数据服务](http://mars3d.cn/dev/guide/data/server.html)进行部署离线地图服务,里面也有一些示例离线数据。
## Mars3D 是什么
> `Mars3D平台` 是[火星科技](http://marsgis.cn/)研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于[Cesium](https://cesium.com/cesiumjs/)优化提升与 B/S 架构设计,支持多行业扩展的轻量级高效能 GIS 开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种 GIS 数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。
> Mars3D 平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D 产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
### 相关网站
- Mars3D 官网:[http://mars3d.cn](http://mars3d.cn)
- Mars3D 开源项目列表:[https://github.com/marsgis/mars3d](https://github.com/marsgis/mars3d)
## 版权说明
1. Mars3D 平台由[火星科技](http://marsgis.cn/)自主研发,拥有所有权利。
2. 任何个人或组织可以在遵守相关要求下可以免费无限制使用。