1 Star 3 Fork 1

贾平 / cesium 学习示例

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
cesium空间数据加载.html 5.21 KB
一键复制 编辑 原始数据 按行查看 历史
贾平 提交于 2023-01-05 11:28 . 目录结构调整
<!DOCTYPE html>
<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>
<script src="./Cesium/Cesium.js"></script>
<link rel="stylesheet" href="./Cesium/Widgets/widgets.css" />
<style>
html,
body {
padding: 0px;
margin: 0px;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0MzJiNzYwNC1lNjNkLTQxNTctOGRmMi1hYWI0YzdmNzU5NjciLCJpZCI6MTIwMjYwLCJpYXQiOjE2NzI4MjE1NTZ9.92plPvDAcuXNNGm2-NsbEMdODDP9bYVnmlNsAtUsD8g";
// 配置地图地形
const viewer = new Cesium.Viewer("cesiumContainer", {
baseLayerPicker: false, // 隐藏默认的地图按钮,否则会影响新地图的加载
terrainProvider: new Cesium.CesiumTerrainProvider({ // 加载地形数据,搜索 珠穆朗玛峰,查看山川地形效果
url: Cesium.IonResource.fromAssetId(1),
requestVertexNormals: true, // 设置为true,可以增加法线,用于提高光照效果,
requestWaterMask: true, // 设置为true,可以增加水面特效
}),
});
// 设置相机位置
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(116.39, 39.91, 2500.0), // 目的地位置
orientation: { // 设置相机视口的方向
heading: Cesium.Math.toRadians(0), // heading控制视口方向的水平旋转,也就是沿着Y轴旋转,当数值为0则代表是正北方向
pitch: Cesium.Math.toRadians(-90.0), // pitch控制视口的上下旋转,即沿X轴进行旋转,当数值为-90则是俯视朝向地面
roll: 0.0 // roll控制视口的翻转角度,即沿着Z轴进行旋转,当数值为0则表示不翻转
}
})
// 重点
// cesium 中使用到的数据一般分为矢量数据和栅格数据
// 前面使用的地形和地图数据就是栅格数据
// 矢量数据包括几何体、模型、标签等
const position = new Cesium.Cartesian3.fromDegrees(116.39, 39.91, 0)
// 1.加载圆点
// const entity = viewer.entities.add({
// position:position, //设置几何体的位置
// point:{ // point属性用于绘制一个圆点
// pixelSize:100, //设置圆点大小
// color:new Cesium.Color(1,0,0) // 设置物体颜色
// }
// })
// 2.加载线条
// const entity = viewer.entities.add({
// polyline: { // polyline属性用于绘制一条线
// show:true, // 设置为可见
// positions:new Cesium.Cartesian3.fromDegreesArray([116.39,39.91,116.40,39.91]), // 线条是由多个点连接起来的,需要放入一个经纬度坐标集合
// width:5,
// material:new Cesium.Color(0,0,1,1), //材质颜色设置为蓝色
// }
// })
// 3.加载面
// const entity = viewer.entities.add({
// position: position, //设置几何体的位置
// plane: { // plane属性用于绘制一个面
// plane: new Cesium.Plane(Cesium.Cartesian3.UNIT_Z,0.0), // 设置面的朝向,设置为沿着Z轴平铺,轴向需要参考笛卡尔坐标
// dimensions:new Cesium.Cartesian2(400,300), // 设置面的长度和宽度
// material:new Cesium.Color(0,0,1,0.5), //材质颜色设置为蓝色,不透明度为0.5,
// outline:true, // 设置是否显示边框
// outlineColor:Cesium.Color.BLACK, // 将边框的颜色设置为黑色
// }
// })
// 4.加载飞机模型
const orientation = Cesium.Transforms.headingPitchRollQuaternion(position, new Cesium.HeadingPitchRoll(-90, 0, 0)) // 设置飞机模型的朝向,第一个参数是位置信息,第二参数是旋转角度信息(这里设置垂直旋转和翻转均为0,已到达飞行的效果)
const entity = viewer.entities.add({
position: new Cesium.Cartesian3.fromDegrees(116.39, 39.91, 2000),
orientation: orientation, // 设置飞机的朝向和翻转角度
model: { // 存储模型的各种信息
uri: './model/Cesium_Air.glb',
minimumPixelSize: 100, // 设置模型最小情况下的大小
maximumScale: 10000, // 设置模型最大缩放的比例
show: true,
}
});
viewer.trackedEntity = entity; // trackedEntity将相机视口快速绑定(锁定)到飞机位置
// 5.加载标签,当我们需要将文字说明加载到地图中是使用
// const entity = viewer.entities.add({
// position:position,
// label:{
// text:'测试文本内容',
// font:'50px Helvetica',
// fillColor:Cesium.Color.SKYBLUE, // 文本颜色设置
// }
// })
</script>
</body>
</html>
HTML
1
https://gitee.com/jia-ping/cesium-learning-examples.git
git@gitee.com:jia-ping/cesium-learning-examples.git
jia-ping
cesium-learning-examples
cesium 学习示例
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891