相机控制主要是用于相机的飞行定位,例如系统初始化位置定位、视点切换、设备定位、报警事件定位等,这些都是通过对相机进行操作实现的。Cesium虽然提供了很多种方法用于实现相机的飞行定位,但这些方法都是基于Viewer、Camera这两个类实现的。
Viewer类
在Viewer类里面有两个方法用于实现相机的飞行定位,分别是flyTo、zoomTo方法。这两个方法第一个参数都是 target ,类型可以是Entity、DataSource、ImageryLayer、Cesium3DTileset等;flyTo方法的第二个参数是 options ,它是一个包含duration(飞行持续时间)、maximumHeight(飞行中的最大高度)、offset(HeadingPitchRange类型)的对象,而 zoomTo 方法的第二个参数是 offset ,即上面 options 中的 offset ,也是一个HeadingPitchRange类型的对象。Viewer类中的相机定位方法如下图所示:

Camera类
Camera 类对应的相机定位方法比较多,包括如下图所示的五个方法,每个方法的参数及参数类型都用不同的颜色区分开来。其中,options对象参数只列出了主要的属性,想查看全部参数请查阅官方 API 文档。

不管是Viewer类还是Camera类中的方法都能实现相机的定位功能,根据实际情况选择其一或组合使用。其中viewer.flyTo()、camera.flyTo()、camera.flyToBoundingSphere()这三个方法会有一个飞行动画的效果,所以会有飞行持续时间参数du

本文介绍了Cesium中实现相机飞行定位的方法,包括通过Viewer和Camera类的不同方法。重点讲解了相机参数heading、pitch、roll的作用,并给出了具体的示例代码。

3003

被折叠的 条评论
为什么被折叠?



