mars3d使用

mars3d使用

1、认识

👉认识Mars3D

Mars3D是火星科技研发的一款 基于 Web 的 3D 地理信息系统(GIS)库**,属于三维 GIS的一部分,适合城市和地理空间数据可视化,使用WebGL 技术可以将**城市地图、建筑物、道路网络等以 3D 形式展示。

Mars3D基于Cesium与B/S架构设计,轻量级高效能GIS开发平台,使用多种GIS数据和三维模型,呈现三维空间的可视化。

🍎主要功应用三维 GIS 场景
  • 智慧城市(建筑物管理、地下管网、环境监测)
  • 应急指挥(火灾模拟、洪水预警、无人机监控)
  • 交通管理(轨迹回放、车流分析、航线规划)
  • 国土资源(地质勘探、土壤分析)
  • 虚拟仿真(游戏场景、元宇宙)
🍎扩展性

**数据支持 **GeoJSON、KML、CZML、3D Tiles 等

支持地图、地形、地表的渲染与交互

可以与地理信息系统、地图服务(如百度地图、高德地图等)进行集成

👉Mars3D的官网

javascript 复制代码
// 官方网址
http://mars3d.cn/

// 开发教程
http://mars3d.cn/dev/

//开发文档
http://mars3d.cn/docs/

//API文档
http://mars3d.cn/api/


//开源地址
https://github.com/marsgis/mars3d

👉Mars3D包含内容

javascript 复制代码
Mars3D开发基础系列文档导航

三维场景 Map
地图控件
地图图层 Layer
加载DEM地形
栅格瓦片图层
坐标系及坐标变换
相机Camera及视角控制
时钟Clock及时序控制
事件机制
矢量图层Layer
矢量数据Graphic
Property属性机制
Material材质
glTF小模型
3DTiles三维模型
场景特效
管理及分析功能

👉Mars3D的CDN部分

我们也可以使用CDN的方式进行使用

javascript 复制代码
<!--引入cesium基础lib-->
<link href="https://unpkg.com/mars3d-cesium/Build/Cesium/Widgets/widgets.css" rel="stylesheet" type="text/css" />
<script src="https://unpkg.com/mars3d-cesium/Build/Cesium/Cesium.js" type="text/javascript" ></script>
<script src="https://unpkg.com/@turf/turf/turf.min.js" type="text/javascript" ></script>

<!--引入mars3d库lib-->
<link href="https://unpkg.com/mars3d/dist/mars3d.css" rel="stylesheet" type="text/css" />
<script src="https://unpkg.com/mars3d/dist/mars3d.js" type="text/javascript" ></script>  


<!--引入mars3d库插件lib(按需引入)-->  
<script src="https://unpkg.com/mars3d-space/dist/mars3d-space.js" type="text/javascript" ></script> 

2、配置安装

🍎 新建项目

接下来我们在项目之中进行一下相关的安装以及使用,这里我搭建一个Vue3+TS+Antd进行演示,这里我们主要先使用依赖包的方式进行

项目搭建使用

javascript 复制代码
// 创建项目
npx create-vite@latest NexusAntd --template vue-ts

//依赖
yarn add vue-router@latest
yarn add antd

🍎安装依赖(npm包方式)

接下来在项目之中引入使用mars3d部分

javascript 复制代码
//安装mars3d主库,其中mars3d-cesium  @turf/turf为依赖库
yarn add mars3d mars3d-cesium  @turf/turf

//安装mars3d插件(按需安装)
yarn add mars3d-space --save

🍎vite项目配置

  • 安装依赖库
javascript 复制代码
yarn add vite-plugin-mars3d --save-dev
  • 修改 vite.config.ts 配置文件
javascript 复制代码
import { defineConfig } from "vite"
import { mars3dPlugin } from "vite-plugin-mars3d"

export default defineConfig({
  plugins: [mars3dPlugin()]
})

🍎项目使用

在我们项目之中进行使用,我们先采用官方的进行演示

javascript 复制代码
<template>
  <div id="mars3dContainer" class="mars3d-container"></div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue'
// 引入 Mars3D 所需的 CSS 样式
import "mars3d-cesium/Build/Cesium/Widgets/widgets.css"

// v3.8.6及之前版本使用 import "mars3d/dist/mars3d.css";
import "mars3d/mars3d.css"

// 引入 Mars3D 主库
import * as mars3d from "mars3d"

// 使用 onMounted 来确保组件挂载时初始化地图
onMounted(() => {
  initMap();
})
const initMap = () =>  {
  const map = new mars3d.Map("mars3dContainer", {
    basemaps: [{ name: "天地图", type: "tdt", layer: "img_d", show: true }]
  })
  return map
}
</script>
<style scoped>
/* 你可以根据需要自定义地图容器的样式 */
.mars3d-container {
  width: 1920px;
  height: 1080px; /* 根据需求调整高度 */
}
</style>

这个时候预览就可以发现我们项目已经显示出来

3、进一步使用

接下来就可以继续进一步使用mars3d了

相关推荐
林太白11 分钟前
CommonJS和ES Modules篇
前端·面试
用户753897552817520 分钟前
《手写解释器》第4章 扫描
后端
李明卫杭州21 分钟前
响应式图片加载:srcset 和 sizes 的结合使用
前端
Running_C22 分钟前
HTTP 断点续传与大文件上传,现在面试必问吧
前端·面试
大前端helloworld23 分钟前
记录从离职到找工作这段时间的故事
前端
麦田里的守望者江26 分钟前
KMP & CMP 开发桌面 App - 构建
前端
之梦30 分钟前
Electron + Vue3开源跨平台壁纸工具实战(七)进程通信
前端·electron
之梦33 分钟前
Electron + Vue3开源跨平台壁纸工具实战(八)主进程-核心功能
前端·electron
白仑色33 分钟前
JavaScript案例(乘法答题游戏)
开发语言·javascript·游戏
我叫黑大帅35 分钟前
从刷不到底的朋友圈说起:手把手教你搞懂 "下拉加载更多"
前端·javascript