第一个cesium项目

455 字
2 分钟
第一个cesium项目

第一个cesium项目#

创建 Vite 项目#

这里使用vite搭建demo, 选择 Vanilla (代表原生 JS)

Terminal window
npm create vite@latest my-cesium-demo

安装 Cesium#

我们需要安装 Cesium 库本身,以及一个专门为 Vite 打造的 Cesium 插件。

  1. 安装 Cesium:

    Terminal window
    npm install cesium
  2. 安装 Vite 插件 (vite-plugin-cesium): 这个插件会自动帮你处理 Cesium 的静态资源。

    Terminal window
    npm install vite-plugin-cesium -D

配置 Vite#

在项目根目录新建 vite.config.js 文件。

import { defineConfig } from 'vite';
import cesium from 'vite-plugin-cesium'; // 引入插件
export default defineConfig({
plugins: [
cesium() // 使用插件
]
});

Cesium 代码#

打开 index.html,把 <body> 里的内容改成一个简单的 div,作为 Cesium 的容器:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cesium Demo</title>
</head>
<body>
<div id="cesiumContainer"></div>
<script type="module" src="/main.js"></script>
</body>
</html>

main.js

main.js
// 1. 引入 Cesium 的 CSS
import 'cesium/Build/Cesium/Widgets/widgets.css'
// 2. 引入 Cesium 库
import * as Cesium from 'cesium'
// 3. 设置 Cesium 静态资源路径
// (这一步很重要,vite-plugin-cesium 会自动处理,但我们需要告诉 Cesium 从哪里加载)
window.CESIUM_BASE_URL = '/Cesium/'
// 4. (可选) 设置你的 Cesium Ion Token
const ACCESS_TOKEN =
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4ZjRiOWJjYS05YjFlLTQwMDItODJlMy1iNzNkODU5NDJiMjIiLCJpZCI6Mjg1NjUyLCJpYXQiOjE3NDIzNjYzODB9._KJdWwzj8NIjoVImtrNdClZ3zqa44wo3qb5cOXdOpBU'
Cesium.Ion.defaultAccessToken = ACCESS_TOKEN
// 5. 初始化 Cesium Viewer
const viewer = new Cesium.Viewer('cesiumContainer', {
// --- 为了保持 Demo 简洁,我们关闭一些默认控件 ---
animation: false, // 是否显示动画控件
baseLayerPicker: false, // 是否显示图层选择器
fullscreenButton: false, // 是否显示全屏按钮
geocoder: false, // 是否显示地名查找控件
homeButton: false, // 是否显示 Home 按钮
infoBox: false, // 是否显示信息框
sceneModePicker: false, // 是否显示3D/2D/哥伦布视图切换器
selectionIndicator: false, // 是否显示选取指示器
timeline: false, // 是否显示时间线
navigationHelpButton: false, // 是否显示导航帮助按钮
})
// (可选) 关掉 logo
viewer._cesiumWidget._creditContainer.style.display = 'none'
// 移除原有的layer
viewer.imageryLayers.remove(viewer.imageryLayers.get(0))
// viewer.imageryLayers.removeAll()
// 添加一个在 Ion 注册的 layer
const imageryLayer = Cesium.ImageryLayer.fromProviderAsync(Cesium.IonImageryProvider.fromAssetId(3954))
viewer.imageryLayers.add(imageryLayer)
console.log('Cesium + Vite demo is running!')

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

第一个cesium项目
https://sukksa.github.io/posts/di-yi-ge-cesium-xiang-mu/
作者
Sukksa
发布于
2025-10-08
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
关于 cesium 在 micro-app 下无法显示的问题
cesium基座:vite + vue3 子应用:vite + vue3 micro app v1.0.0 rc.29, cesium v1.135 子应用包含一个 cesium map,在基座打开子应用时,cesium 无法显示地图,但是 sence, sky box, model 都能正常显示,唯独地图不显…
2
仅显示某个行政区划(cesium 挖孔)
cesium添加polygon, 中间挖孔, 仅显示某个区域 GeoJSON为 GeoJSON , 行政区划下载
3
react-hooks
reactReact 的核心是组件。v16.8 版本之前,组件的标准写法是类(class)。 任何一个组件,可以用类来写,也可以用钩子来写。下面是类的写法。 再来看钩子的写法,也就是函数。 官方推荐使用钩子(函数),而不是类。因为钩子更简洁,代码量少,用起来比较"轻",而类比较"重"。而且,钩子是函数,更符合…
4
TypeScript 进阶
TypeScript数组合并了相同类型的对象,而元组(Tuple)合并了不同类型的对象。 元组起源于函数编程语言(如 F ),这些语言中会频繁使用元组。 元组是⼀种特殊的数组类型,可以存储固定数量的元素,并且每个元素的类型是已知的且可以不同。元组⽤于精确描述⼀组值的类型, ? 表示可选元素。 定义一对值分别为 stri…
5
TypeScript 基础
TypeScriptJavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。 原始数据类型包括:布尔值、数值、字符串、 null 、 undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型 BigInt 。
随机文章随机推荐
Profile Image of the Author
Sukksa
记录前端学习与日常
公告
博客刚刚上线,内容还在慢慢补齐。欢迎随便逛逛~
分类
标签
最新动态
站点统计
文章
69
分类
16
标签
17
总字数
178,517
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录