Cesium快速入门1:打造第一个Cesium应用

CesiumJS 是一个主要用于三维地球和地图可视化的 JavaScript 库。它可以支持海量的三维模型数据,也就是说,我们可以根据自己的需要,选择展示地球的某一部分内容,并以三维的方式更直观、更快速地进行展示。

Cesium 可以跨平台、跨浏览器运行,而且无需安装任何插件,使用起来非常方便。

它的核心优势在于强大的地理数据可视化能力,因此与数字孪生技术密切相关。同时,Cesium 还提供了丰富的工具,帮助我们快速实现地理数据的可视化展示。

此外,Cesium 还可以与 Three.js 结合使用。例如,当我们需要展示一个三维地球时,可以用 Cesium 来进行渲染;而当我们需要更精细、更逼真的三维模型和细节时,可以结合 Three.js 来实现。

所以,接下来我们就来看一下 Cesium 是如何使用的,这也是我们本节课的重点内容。

首先,我们需要下载 CesiumJS。登录官网后,我们可以通过 NPM 安装,也可以直接下载官方提供的安装包。这里我已经提前下载好了。

下载完成后,Cesium 的压缩包大概就是这么大。我们可以在本地新建一个文件夹,把压缩包放进去并解压。当前版本是 1.93。

解压后,我们进入目录,使用 Yarn 安装依赖,也就是安装 Node Modules 中的相关依赖包。安装完成后,我们可以执行 yarn start 命令,启动 Cesium 自带的本地服务器。

启动后,我们就可以在本地访问官方文档和案例了。比如,本地会自动启动 Documentation 文档页面。这样,即使网络不好或无法翻墙,我们也可以离线查阅文档。

更重要的是,Cesium 提供了丰富的案例,尤其是 Sandcastle(沙盒)工具。在沙盒中,我们可以直接查看代码和效果,通过代码与可视化内容的结合,快速学习和理解如何实现三维地球的展示。

接下来,我们就用 Vue3 来创建一个最简单的项目,运行我们的第一个 Cesium 示例。

首先,我们使用 Vue CLI 创建一个 Vue3 项目,命令是:

vue create cesium-base

项目创建完成后,我们进入项目目录,安装 Cesium:

yarn add cesium

安装完成后,我们就可以开始编写代码了。

打开 App.vue 文件,把默认内容清空。我们需要创建一个用于显示三维地球的容器,给它设置一个 ID,比如叫 cesiumContainer

在 Vue3 中,我们可以使用 setup 语法糖来编写逻辑。我们可以通过 ref 获取这个容器的 DOM 对象,也可以直接使用 ID 获取。

接下来,我们需要导入 Cesium 库和它自带的 CSS 样式文件。Cesium 的样式文件位于 node_modules/cesium/Build/Cesium/Widgets/widgets.css,我们需要把它引入项目。

此外,Cesium 还需要一些静态资源文件,比如图片、字体等,这些资源位于 node_modules/cesium/Build/Cesium/ 目录下的四个文件夹中。

我们需要把这四个文件夹复制到项目的 public 目录下,否则运行时会出现资源缺失的问题。

复制完成后,我们还需要设置一个全局变量,告诉 Cesium 静态资源的路径:

复制代码
window.CESIUM_BASE_URL = '/';

这是一个固定的写法,必须是大写的 CESIUM_BASE_URL,路径设置为根目录。

然后,我们在 onMounted 生命周期钩子中初始化 Cesium,确保 DOM 已经挂载完成:

复制代码
new Cesium.Viewer('cesiumContainer');

这样,我们就完成了最基本的 Cesium 地球初始化。

完整代码如下:

复制代码
<template>
  <div id="cesiumContainer" ref="cesiumContainer"></div>
</template>

<script setup>
import * as Cesium from 'cesium';
import { onMounted } from 'vue';
import './Widgets/widgets.css';
window.CESIUM_BASE_URL = '/';
onMounted(() => {
  Cesium.Ion.defaultAccessToken = 'your token';
  new Cesium.Viewer('cesiumContainer');
});
</script>

<style>
*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
#cesiumContainer {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
</style>

最后,我们启动项目:

yarn dev

浏览器中就会显示出我们的第一个三维地球了。

那么,这一节课我们就先上到这里。

相关推荐
supermapsupport12 小时前
SuperMap GIS 基础产品 FAQ 集锦(20260807)
webgl·supermap·idesktopx
supermapsupport13 小时前
SuperMap iClient3D for WebGL 如何开启实体对象深度检测
webgl
IT小白杨14 小时前
2026Shopee多站点运营的浏览器隔离与移动端云手机方案
经验分享·社交电子·webgl·安全架构·指纹浏览器
echoVic2 天前
同一个 bug,我在 WebGPU 渲染器里犯了两轮:一帧内多次写同一块 buffer
前端·webgl·图形学
兔年鸿运Q小Q3 天前
cesium1.140以上版本加载地形
arcgis·cesium
用户83134859306985 天前
Vue3+Cesium实现阴天乌云+下雨天气特效
vue.js·webgl·cesium
引山洪086 天前
Babylon.js 8.x 中文文档整理——Node篇 (上)
前端·webgl
想做后端的前端12 天前
WebGL实现FPS游戏
vue.js·游戏·webgl
ZENERGY-众壹13 天前
延时 5 秒怎么调优:光伏 SCADA 实时画面与 WebGL 拓扑集成的性能复盘
性能优化·webgl·scada·光伏运维·api集成
用户831348593069813 天前
Vue+Three.js实现PCB电路板3D交互:元器件点击高亮、部件显隐、模型自动旋转
vue.js·webgl·three.js