目标:快速创建一个使用真实数据的3D应用
第一步:创建一个账号和得到一个token
- 注册一个账号获取[
token
](Cesium ion)后续调用Cesium
官方的数据需要
第二步:构建Cesium
客户端
Cesium
是开源的JS
引擎,我们引入它有以下两种方式
CDN
引入---简单学习使用NPN
安装---工程化
CDN
引入
- 简单创建一个
html
文件,引入Cesium
提供的JS
和CSS
文件,并使用它的场景数据,同时需要你用你的token
替换下面代码中的:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 引入Cesium的JS和CSS文件 -->
<script src="https://cesium.com/downloads/cesiumjs/releases/1.90/Build/Cesium/Cesium.js"></script>
<link href="https://cesium.com/downloads/cesiumjs/releases/1.90/Build/Cesium/Widgets/widgets.css" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
}
#cesiumContainer {
width: 100vw;
height: 100vh;
}
</style>
</head>
<body>
<!-- 地球容器 -->
<div id="cesiumContainer"></div>
<script>
const your_token = '你自己的token';
Cesium.Ion.defaultAccessToken = your_token;
// 在id为cesiumContainer的HTML元素里初始化Cesium视图
const viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: Cesium.createWorldTerrain()
});
// 添加OSM的全球3D图层作为底图
const buildingTileset = viewer.scene.primitives.add(Cesium.createOsmBuildings());
// 指定对应的经纬度和高度,将摄像机移动到旧金山
viewer.camera.flyTo({
// 目标点
destination: Cesium.Cartesian3.fromDegrees(-122.4175, 37.655, 400),
// 相机本身的定位
orientation: {
heading: Cesium.Math.toRadians(0, 0),
pitch: Cesium.Math.toRadians(-15.0)
}
})
</script>
</body>
</html>
NPM
安装
若是实际项目中使用了
webpack/Rollup
等做打包,就需要npm
安装
- 安装
npm install cesium
2.Cesium
中有些静态文件需要再服务器上部署,具体就是下面这些文件
node_modules/cesium/Build/Cesium/Workers
node_modules/cesium/Build/Cesium/ThirdParty
node_modules/cesium/Build/Cesium/Assets
node_modules/cesium/Build/Cesium/Widgets
- 如何引入
window.CESIUM_BASE_URL = '/';
import * as Cesium from 'cesium';
import "cesium/Build/Cesium/Widgets/widgets.css";
其中
window.CESIUM_BASE_URL
中的路径必须指向上述几个文件的位置