前端页面引入cesium

在web端实现cesium 3D地球场景,以最简单的引入地球为例,最终效果如下:

1. 下载cesium插件

创建好一个vite+vue3项目以后,需要下载cesium插件,但凡用到cesium都需要先下载插件。在项目的terminal终端输入以下:

复制代码
npm install cesium vite-plugin-cesium vite --save-dev

2. 加入cesium配置

找到vite.config.js文件,添加如下图中所圈的代码

3. 创建viewer实例

复制代码
引入cesium,并创建一个Viewer实例,用于放置你所想要加载的cesium场景。

在APP.vue写入:

html 复制代码
<script setup>
import * as Cesium from 'cesium';
import {onMounted, onBeforeUnmount} from "vue";

let viewer = null;

onMounted(() => { 
  // 创建一个Viewer实例
  const viewer = new Cesium.Viewer('cesiumContainer')}


onBeforeUnmount(() => {
  if (viewer) {
    viewer.destroy()  //彻底销毁和释放一个 Viewer
    viewer = null
  }
})
</script>

因为要渲染页面,所以需要onmounted挂载viewer实例,不然页面不加载。具体onmounted有关的生命周期函数知识点自行查阅。

4. 设置一个前端元素来承载cesium场景

在APP.vue写入:

html 复制代码
<template>
   <div id="cesiumContainer" style="width: 100%; height: 100vh;"></div>
</template>

5. 设置div盒子的宽高,不然场景没有宽高不会显示

html 复制代码
<style>
  #cesiumContainer {
    font-family: Avenir, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-align: center;
    color: #2c3e50;
    z-index: 1;
  }
  html,body,#cesiumContainer{
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }
</style>

6. 代码汇总

在同一个App.vue中写入:

html 复制代码
<script setup>
import * as Cesium from 'cesium';
import {onMounted, onBeforeUnmount} from "vue";

let viewer = null;

onMounted(() => {  
  // 创建一个Viewer实例
  const viewer = new Cesium.Viewer('cesiumContainer')
}

onBeforeUnmount(() => {
  if (viewer) {
    viewer.destroy()
    viewer = null
  }
})
</script>

<template>
<div id="cesiumContainer" style="width: 100%; height: 100vh;"></div>
</template>


<style>
  #cesiumContainer {
    font-family: Avenir, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-align: center;
    color: #2c3e50;
    z-index: 1;
  }
  html,body,#cesiumContainer{
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }


</style>

写好以后在终端运行项目:

npm run dev

然后打开网址就可以看到一个3D的地球场景了,这是最简单的。复杂一些的可以继续添加cesium有关配置即可。

相关推荐
智能运维指南几秒前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
白山编程大哥2 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Flynt3 小时前
我把热榜那篇"禁用 axios"逐条实测了一遍:结论大体对,坑在它没讲的地方
前端·javascript·axios
Csvn3 小时前
bundle优化
前端
北冥有鱼4 小时前
发版后动态路由点击报 `Failed to fetch dynamically imported module`」问题上的完整排查与修复过程
前端·vue.js
静默回滚4 小时前
视频压到 25 MB 以内,码率要算、音轨要扣、余量要留
前端
用户37203749260184 小时前
把 10MB 中文语义模型塞进浏览器:STSB 做到教师模型的 93%,但线上 top1 只有 42%
前端
光锥智能4 小时前
海康机器人举行2026移动机器人新品发布会:箱式存拣升级,「明智」系列发布
java·前端·机器人
计算机魔术师4 小时前
Anthropic 上市文件最吓人的一幕,不是亏损 807 亿
前端
alsmile4 小时前
AI友好的可视化图形引擎自我革命:Meta2d.js 2.0 历时一年全新重写,性能与多人协作全面升级
前端·开源·数据可视化