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了

相关推荐
David爱编程26 分钟前
指令重排与内存屏障:并发语义的隐形守护者
java·后端
Java 码农34 分钟前
nodejs koa留言板案例开发
前端·javascript·npm·node.js
ZhuAiQuan1 小时前
[electron]开发环境驱动识别失败
前端·javascript·electron
nyf_unknown1 小时前
(vue)将dify和ragflow页面嵌入到vue3项目
前端·javascript·vue.js
胡gh1 小时前
数组开会:splice说它要动刀,map说它只想看看。
javascript·后端·面试
Pure_Eyes1 小时前
go 常见面试题
开发语言·后端·golang
胡gh1 小时前
浏览器:我要用缓存!服务器:你缓存过期了!怎么把数据挽留住,这是个问题。
前端·面试·node.js
你挚爱的强哥2 小时前
SCSS上传图片占位区域样式
前端·css·scss
奶球不是球2 小时前
css新特性
前端·css
Nicholas682 小时前
flutter滚动视图之Viewport、RenderViewport源码解析(六)
前端