使用cesium真实世界数据快速创建一个cesium app,本次将学习快速启动第一个web 3D应用
创建一个账户,并获取token
Cesium ion 是一个流式的3D地图素材内容的托管平台,我们要使用Cesium
的地图在线素材,必须先注册https://ion.cesium.com
,然后再复制token才可以使用。
- 去创建一个Access Token
- 在令牌旁边有个复制按钮,直接复制即可。

配置Cesium客户端
运行 npm install cesium --save
安装依赖
cesium 在运行的时候需要依赖许多静态文件,在使用vite + vue3
的项目当中出现大量404的错误,cesium
提供了一个全局配置静态文件路径的变量CESIUM_BASE_URL
。
首先对该变量如下赋值
window.CESIUM_BASE_URL = 'CesiumUnminified';
在nodemodules/cesium/Build
文件夹下找到CesiumUnminified
,将这个文件夹全部复制到public
文件夹当中。
vue
<script setup lang="ts">
// 这里的 Ion 是上边介绍的存储地图的服务器
import { Cartesian3, createOsmBuildingsAsync, Ion, Math as CesiumMath, Terrain, Viewer } from 'cesium';
import "cesium/Build/Cesium/Widgets/widgets.css";
import { onMounted } from 'vue';
// 静态文件路径配置
window.CESIUM_BASE_URL = 'CesiumUnminified';
Ion.defaultAccessToken = '你的token';
// 等待dom初始化完成
onMounted(async () => {
// 先创建一个视图,在ID为 cesiumContainer 的html 元素当中 初始化 Cesium 视图区域
const viewer = new Viewer('cesiumContainer', {
terrain: Terrain.fromWorldTerrain(),
animation: false, // 是否显示左下角的仪表盘
baseLayerPicker: true, // 是否显示图层选择器按钮,右上角那个地图图标
fullscreenButton: true, // 是否显示全屏按钮
vrButton: true, // 是否显示VR按钮
geocoder: true, // 是否显示搜索按钮
homeButton: true, // 是否显示主页按钮
infoBox: false, // 是否显示提示信息
sceneModePicker: true, // 是否显示右上角的模式切换按钮
selectionIndicator: false, // 是否显示选取指示器组件
timeline: true, // 是否显示下边的时间轴
navigationHelpButton: false, // 是否显示右上角的帮助按钮
navigationInstructionsInitiallyVisible: true, // 是否显示导航
scene3DOnly: true, // 是否指定仅为三维模式,全部使用三维模式可节约 GPU 资源
// 在2023.07.03 1.107 版本的更新当中,这个选项被 baseLayer所替代
imageryProvider: new Cesium.ArcGisMapServerImageryProvider({
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
})
});
// 视图上绑定的是相机,在给定的经度、纬度 和 高度,将视图移动到 西安的大雁塔
viewer.camera.flyTo({
destination: Cartesian3.fromDegrees(108.970604, 34.224485, 1400),
orientation: {
heading: CesiumMath.toRadians(0.0),
pitch: CesiumMath.toRadians(-15.0),
}
});
// OsmBuildings 是一个全球3D建筑物视图, 添加一个OSM建筑物视图
const buildingTileset = await createOsmBuildingsAsync();
viewer.scene.primitives.add(buildingTileset);
})
</script>
<template>
<div id="cesiumContainer" style="width: 100%;height: 90vh;"></div>
</template>
接下来的学习
- 建立航班追踪器:用FlightRadar 24收集雷达数据来想象从弗朗西斯科到哥本哈根的真实的飞行。
- 可视化建议的建筑:将真实的城市中的建筑物替换为您自己的3D模型,并查看它如何改变视图。
参考
Cesium更新日志:https://github.com/CesiumGS/cesium/blob/main/CHANGES.md