当前位置: 首页 > news >正文

『CesiumJS』初体验

点赞 + 关注 + 收藏 = 学会了

💡整理了一个 『CesiumJS』 入门专栏,感兴趣的工友可以戳这里关注 👉 《CesiumJS 入门教程》

CesiumJS 是目前 Web 端很厉害的开源 3D 地球与地图可视化库。

简单来说,Cesium 就是一个“运行在浏览器里的 3D 地球仪”。

它基于WebGL技术,不用安装任何浏览器插件,直接在网页里就能运行,核心能力就是帮我们快速做出立体地球、卫星地图、地理点位标注、地形展示等效果,不管是做简单的地图展示、旅游点位标注,还是智慧城市、航天轨迹模拟这类复杂项目,都能轻松实现。

  • Cesium官网:https://cesium.com/platform/cesiumjs
  • Cesium仓库:https://github.com/CesiumGS/cesium
  • CesiumJS 官方文档:https://cesium.com/learn/cesiumjs-learn

环境准备

本专栏用 Vue3 项目来讲解 Cesium 的用法。使用 React 或者其他框架的工友也不用担心,Vue3 的语法足够简单,Cesium 也能在其他框架下运行。

我用 Vite 创建一个 Vue3 项目,你可以用其他方式创建。

安装 Cesium

在项目根目录下运行:

npm install cesium

安装配套插件

由于 Cesium 包含大量的静态资源(着色器、贴图、Web Worker),手动配置 Vite 路径非常繁琐。推荐使用 vite-plugin-cesium 插件自动处理所有配置。

npm install vite-plugin-cesium -D

配置 vite.config.js

vite.config.js (或 .ts) 中引入并使用该插件。

import { defineConfig } from 'vite'
import vue from '@vue/vite-plugin-vue'
import cesium from 'vite-plugin-cesium' // 引入插件export default defineConfig({plugins: [vue(),cesium() // 配置插件]
})

这一步之后,Cesium 的静态资源会自动拷贝到构建目录,并正确配置基础路径,无需手动搬运 Assets 文件夹。

在 Vue 3 组件中使用

接下来编写一个简单的组件来显示 3D 地球。

在模板中定义一个带 iddiv,并设置宽高,然后等 div 组件渲染出来后再用 Cesium 渲染一个地球,一定要遵循这个流程,不然可能会报错。

在 Vue 3 用 onMounted 这个生命周期能实现上面的要求。

<template><div><div id="cesiumContainer"></div></div>
</template><script setup>
import { onMounted } from 'vue';
import * as Cesium from 'cesium';onMounted(() => {const viewer = new Cesium.Viewer('cesiumContainer');
});</script><style scoped>
#cesiumContainer {width: 100vw;height: 100vh;margin: 0;padding: 0;overflow: hidden;
}
</style>

通过 new Cesium.Viewer() 创建了一个核心视窗,它能管理地球、时间轴、选择器等所有交互。Viewer() 里可以传入多个参数,第一个参数是要将地图绑定的元素。

隐藏版权信息

细心的工友可能已经发现,页面底部有一句版权信息。

想去掉这句信息需要在 Cesium 官网驻车一个 Access Token,免费的,放心~

打开 Cesium 官网,注册一个👉 https://ion.cesium.com/signin/tokens

注册并登录成功后,回到 Cesium 这里就能看到右侧有个 Token,把它复制到你的代码里。

这样操作后,下方的提示就变成稍微正版一点了。

// 省略部分代码
onMounted(() => {Cesium.Ion.defaultAccessToken = 'YOUR_TOKEN_HERE'; // 在这里填入你的 Cesium Ion Access Tokenconst viewer = new Cesium.Viewer('cesiumContainer');
});

如果想要再简洁点,可以将 LOGO 元素的 display 设置为 none

// 省略部分代码
onMounted(() => {Cesium.Ion.defaultAccessToken = 'YOUR_TOKEN_HERE';const viewer = new Cesium.Viewer('cesiumContainer');viewer._cesiumWidget._creditContainer.style.display = "none";
});

隐藏控件

此时页面右上角和页面底部还有一些控件,如果只想保留一个地球在页面里,可以这么操作。

// 省略部分代码
onMounted(() => {Cesium.Ion.defaultAccessToken = 'YOUR_TOKEN_HERE';const viewer = new Cesium.Viewer('cesiumContainer', {animation: false,       // 关闭底部动画控件timeline: false,        // 关闭底部时间轴控件fullscreenButton: false, // 关闭底部全屏按钮baseLayerPicker: false, // 关闭右上角图层选择器geocoder: false, // 关闭右上角搜索框homeButton: false, // 关闭右上角主页按钮navigationHelpButton: false, // 关闭右上角问号帮助按钮sceneModePicker: false, // 关闭右上角地球场景切换按钮});viewer._cesiumWidget._creditContainer.style.display = "none";
});

以上就是本文的全部内容啦,想了解更多 CesiumJS 用法记得关注《CesiumJS 入门教程》👏

点赞 + 关注 + 收藏 = 学会了

http://www.jsqmd.com/news/558855/

相关文章:

  • 雪女-斗罗大陆-造相Z-Turbo效果展示:基于Transformer架构的动漫风格图像生成
  • 2026年热门的10盘热风旋转炉/32盘推车式热风旋转炉/推车式热风旋转炉/16盘推车式热风旋转炉实力工厂怎么选 - 行业平台推荐
  • Java String
  • 2026年靠谱的交流低压配电柜/河南交流低压配电柜/河南高低压配电柜/配电柜配电箱精选厂家 - 行业平台推荐
  • 2026 HENF级板材品牌如何选择?环保与性能双优指南 - 品牌排行榜
  • 告别原生组件坑!微信小程序里让Canvas乖乖跟着ScrollView滚动的3种实战方案
  • 工业质检新视野:通义千问3-VL-Reranker-8B在缺陷检测中的应用
  • 2026年比较好的广州石锅商用烤箱/面包商用烤箱/石锅商用烤箱/食品商用烤箱制造厂家 - 行业平台推荐
  • NeRF训练太慢?从Blender数据到位置编码,这5个关键细节决定了你的GPU燃烧效率
  • 2026年质量好的ALD技术/ALD设备/光伏ALD/ALD工艺开发供应商怎么选 - 行业平台推荐
  • 视频字幕提取效率提升10倍:本地AI驱动的硬字幕解决方案全指南
  • StructBERT零样本分类-中文-base高性能:ONNX Runtime加速推理延迟降低65%
  • python高校大学生家教平台的设计与开发
  • 前端开发者必看:5个提升AI提示词效果的实战技巧(附代码示例)
  • Fish Speech-1.5语音合成企业标准:WAV采样率/比特率/声道数配置指南
  • 无序关联容器:unordered map和unordered multimap 详解
  • LeagueAkari:终极英雄联盟游戏助手完全指南
  • 春节不用愁对联:春联生成模型实战,3步生成专属春联
  • SerialMP3库:GD3300D/TD5580A串口MP3模块驱动详解
  • 【深度解析】CODrone:如何用高分辨率多视角数据重塑无人机旋转目标检测基准
  • 比迪丽LoRA模型动态光影效果集:展现复杂光线下的角色魅力
  • 各版本易筋经意识层操作的系统动力学分析
  • Kubernetes 存储管理最佳实践
  • SiameseUIE效果展示:终南山隐居王维等文化地理关系还原
  • 英雄联盟段位修改完整解决方案:LeaguePrank免费工具终极指南
  • ROS2 Humble + Gazebo 保姆级安装与模型导入教程(含国内镜像加速)
  • DeEAR镜像免配置实战:无需修改config.py,直接运行app.py启用全部功能模块
  • 解析RK3566平台双摄(OV5648+GC2145)的Split Mode配置实战
  • Qwen3-ASR-1.7B多说话人分离展示:会议录音自动分角色
  • OpenClaw 的模型架构中,层归一化采用的是 Pre-LN 还是 Post-LN?