【Mars3D项目实战开发】加载地图白膜数据,并飞到指定位置不同角度查看白膜数据

Mars3D有很多很强大的功能,可以在地球上实现很多炫酷的3D效果。今天给大家分享一个功能,在地球上加载白膜数据,并飞到指定位置,不同角度查看白膜数据。

1.话不多说,先展示

加载白膜数据

2.设计思路

需要在3维地球上加载白膜数据,通过url从服务器请求白膜数据直接加载,并通过自带的方法飞到指定位置,指定视角查看白膜数据。

3.具体代码

bash 复制代码
<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";
import axios from "axios";

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

var map = reactive(null);
var list = ref([]);

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);

  getBm();

});

//加载白膜数据 并动画到指定位置
const getBm = () => {
  var tiles3dLayer1 = new mars3d.layer.TilesetLayer({
    name: "白膜数据",
    url: "http://172.16.10.83:9509/map3d/wbl/BM4/tileset.json",
    position: {
      alt: 0,
    },
    maximumScreenSpaceError: 256,
    zIndex: 3,
    show: true,
  });
  map.addLayer(tiles3dLayer1);

  //飞到指定经纬度
  map.openFlyAnimation({
    center: {
      lat: 37.84331,
      lng: 112.543554,
      alt: 1587.8,
      heading: 296,
      pitch: -17.2,
    },
  });
};


</script>

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

<style scoped>
.mars3dBox {
  width: 100%;
  height: 100%;
}
</style>
相关推荐
黄思搏1 天前
Unity坐标转换指南 - 3D与屏幕UI坐标互转
ui·3d·unity
Sheldon一蓑烟雨任平生2 天前
Vue3 组件库 Element Plus
vue.js·vue3·element plus·element ui·vue3 常用组件库
TG:@yunlaoda360 云老大2 天前
腾讯WAIC发布“1+3+N”AI全景图:混元3D世界模型开源,具身智能平台Tairos亮相
人工智能·3d·开源·腾讯云
心 爱心 爱2 天前
Shape-Guided Dual-Memory Learning for 3D Anomaly Detection 论文精读
计算机视觉·3d·异常检测·工业异常检测·三维异常检测·多模态工业异常检测·二维异常检测
全栈前端老曹2 天前
【前端组件封装教程】第3节:Vue 3 Composition API 封装基础
前端·javascript·vue.js·vue3·组合式api·组件封装
geobuilding3 天前
将大规模shp白模贴图转3dtiles倾斜摄影,并可单体化拾取建筑
算法·3d·智慧城市·数据可视化·贴图
美摄科技3 天前
什么是3D贴纸SDK?
3d
Sheldon一蓑烟雨任平生4 天前
Vue3 任务管理器(Pinia 练习)
vue.js·vue3·pinia·任务管理器·pinia 练习
HelloRevit4 天前
快速入门 - Azure 数字孪生的 3D 场景工作室(预览版)入门
3d·flask·azure
云外天ノ☼4 天前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证