1.5 Cesium API概要
Cesium API对于学习Cesium的人来说是必不可少的,我们可以在Cesium官网(https://cesium.com/learn/cesiumjs/ref-doc/)中查看API文档。但是Cesium官网中的API文档类库中的类实在太多,每一个类中又包括大量的函数、属性。这些类全部堆放在一起,显得杂乱无章,往往使得初学者不知道从何下手。图1-5所示为Cesium官网的API。下面将介绍Cesium的几个核心类。
图1-5 Cesium官网的API
任何一个Cesium程序都离不开Viewer类。可以说,Viewer基本上代表了一个Cesium三维视窗的所有,是Cesium程序应用的切入口,其核心构成如图1-6所示。
图1-6 Viewer的核心构成
Scene类也是我们在使用Cesium时无法跳过的一个非常重要的类,是用来管理三维场景中的各种对象实体的核心类。其中,环境对象包括月亮、太阳、天空盒(用来表示星空)、大气圈等;渲染事件包括渲染前执行事件、渲染后执行事件、更新前执行事件及更新后执行事件等;globe是用来表示整个地球表层的核心类,主要包括地形和图像图层两部分;primitives表示加入场景中的各类几何三维对象,是Primitive的集合,一个Primitive代表Cesium三维场景中的一个基本图元[4];groundPrimitives表示贴地三维几何对象,同样地,它也是GroundPrimitive的集合。
Camera类在Cesium中也是非常常用的类,主要用于控制场景的视图。相机主要由位置、方向和视锥台定义,我们可以通过定义相机的位置、方位角、俯仰角及翻滚角来调整视图。
在Cesium中,dataSources可以被理解为要可视化的实例集,其强调的是整体、批量的可视化数据,相当于GIS中的Layers(即图层集合)。使用dataSources可以加载指定数据格式(如GeoJSON、KML、CZML及自定义格式)的数据。
Widgets组件中包含了用于构建程序的基本小部件,如搜索工具、时间轴工具、导航工具等。它将所有标准Cesium小部件组合到一个可重用的程序包中,使开发者在使用过程中可以对多种应用进行扩展。
Entity是Cesium中最常用的类型,也是Cesium推荐我们使用的类型。Cesium对Entity的设计着实下了一番功夫。在Cesium定义中,Entity代表一个可以随着时间动态变化的实体。为了让Entity能够被赋予时间的动态特性,Cesium特别引入了Property类,用来记录实体在某个时间段的位置。另外,Entity还有其他的一些属性,如orientation表示实体的方向变化,这个属性的内部使用四元数(Quaternion)来表示。
[1]引自http://www.skylineglobe.cn/。
[2]引自http://www.locaspace.cn/。
[3]引自https://blog.csdn.net/shyjhyp11/article/details/118496780。
[4]引自https://zhuanlan.zhihu.com/p/80904975。