cesium教程(四):相机

Cesium是一款开源的、高性能的3D地球和地图可视化平台,它允许开发者创建基于Web的、交互式的地理空间应用程序。

cesium教程(四):相机

Cesium的核心是一个WebGL驱动的引擎,能够渲染大规模的地理数据集,支持高精度的地球模型和动态数据可视化。以下是一个Cesium的详细教程,分为多个章节。

3D模型在线预览提供多种低代码平台3D模型在线预览解决方案,实现了将多种3D模型格式无缝集成到低代码业务表单中。这意味着用户可以在不离开低代码平台的情况下,直接查看和操作3D模型,极大地提升了数据可视化的效果和用户交互体验。

相机 Camera

相机控制了场景的观察视角。有很多相机操控方法,比如旋转、缩放、平移以及飞行定位。其内部默认己支持使用鼠标和触摸事件控制相机。

  • Camera 类(相机)描述了相机的当前状态,包括:位置(position),朝向(orientation),参考空间(reference frame),视锥体(view frustum),可以调用move*zoom*look*teist*rotate*setViewflyTo 等方法进行控制相机操作。
  • ScreenSpaceCameraController 类(屏幕控件相机控制器把屏幕空间的用户输入(鼠标拖拽点击或者触摸事件)转换为三维世界的相机移动。它包含一些属性,可以启用/禁用某种用户输入,修改惯性、最小最大缩放距离等。

相机相关事件∶(addEventListenerremoveEventListener 进行绑定和解绑)

  • viewer.camera.moveStart 相机开始移动时将引发的事件
  • viewer.camera.moveEnd 相机停止移动时将引发的事件
  • viewer.camera.changed 相机更改后将引发的事件

屏幕控件相机控制器 ScreenSpaceCameraController

禁止相机进入地下

例如,您可以使用 ScreenSpaceCameraController 来控制是否允许摄像机进入地下:

Camera 基本操作方法

  • move*zoom* 方法:沿着相机方向或者某个给定向量来平移相机的位置。 相机朝向不变。
  • look*twist* 方法:旋转相机朝向,向前向量(direction),向上向量(up),向右向量(right)都会改变。相机位置保持不变。
  • rotate* 方法:相对一个给定的向量,旋转相机的位置和朝向

聚焦

viewer.zoomTo 放大到特定位置(平移)。

viewer.flyTo 飞到特定位置/实体。

viewer.zoomToviewer.flyTo 这两种方法都可以传递给一个 EntityEntityCollectionDataSource或一个实体数组。

zoomToflyTo异步功能,这两个函数都返Promises,可用于安排飞行或缩放完成后要执行的函数

viewer.scene.camera.lookAtTransform 将相机锁定到一个点(旋转)

viewer.camera.flyToBoundingSphere 将相机移到所提供的边界球的位置

viewer.camera.viewBoundingSphere 设置相机,使当前视图包含提供的边界球

绕点飞行

将相机锁定到一个点后,您可以创建一个相机轨道来展示您的资产。这可以通过使用 带有事件侦听器的相机功能来实现:lookAtTransform

跟踪实体 trackedEntity

有时,特别是在处理时间动态数据时,我们希望相机保持以实体为中心,而不是在地球上。这是通过设置来实现的 viewer.trackedEntity。需要position设置跟踪实体

通过将 viewer.trackedEntity 设置为 undefined 或 双击远离实体 来停止跟踪调用 zoomToflyTo 也将取消跟踪

缓动函数

缓动函数控制如何在相机飞行持续时间内插入时间

下面的代码示例将缓动函数设置QUADRATIC_IN_OUT为从东京晴空塔飞到西雅图太空针塔:

cesium教程 - 索引

cesium教程(一):创建cesium应用

cesium教程(二):Viewer、Scene、影像

cesium教程(三):地形、坐标

cesium教程(四):相机

cesium教程(五):追踪、交互

cesium教程(六):Entity API-几何种类

cesium教程(七):Entity API-材质和轮廓

cesium教程(八):Entity API-高度和挤压,管理实体

cesium教程(九):Entity API-实体交互

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号