相机 Camera
三维 GIS 中,通过使用相机对象 Camera 来控制三维场景中所显示的视图。相机对象实际是三维场景中的一个虚拟镜头,它具有以下属性:
表1 Camera属性
接口 | 说明 | |
---|---|---|
![]() |
Altitude | 获取或设置相机高度。 |
![]() |
AltitudeMode | 获取或设置高度模式。 |
![]() |
Latitude | 获取或设置相机的纬度,单位为度。 |
![]() |
Longititude | 获取或设置相机的经度,单位为度。 |
![]() |
Heading | 获取或设置相机的方位角(即和北方的夹角),范围是0-360度。 |
![]() |
Tilt | 获取或设置相机的俯角(绕X轴的角度),范围为0度-90度。 |
这个虚拟镜头中心点放置在我们设定的经纬度和高度坐标点。也就是说相机的位置由确定经纬度的地球表面点发出一条射线,射线的长度就是相机的高度,射线的方向由 Heading 和 Tilt 控制。
SuperMap iClient3D 8C for Plugin 中定义地球为一个半径为 6378137 米的球体,采用大地空间直角坐标系,所有数据都在一个坐标系下组织和管理。大地空间直角坐标系是以球心为原点,以起始大地子午面与赤道面的交线为 Z 轴,以赤道面上与Z轴正交的直线为 X 轴,以 X 轴与 Z 轴都正交的直线为 Y 轴,构成右手坐标系,如图 1 所示:
图1 SuperMap iClient3D 8C for Plugin 中默认状态下球体与相机的关系
图 1 中 X’、 Y’ 和 Z’ 轴为附加到相机上的坐标轴,地面点(视点)到相机的连线为 Z’ 轴,与 Z’ 轴 垂直的平面为 X’—Y’ 平面,坐标轴为右手坐标系。在默认场景中该坐标轴与大地空间直角坐标系中的坐标轴平行,相机的位置在经度和纬度都为 0 的位置,即在赤道和本初子午线相交的位置处;相机的 Heading 值为 0,表示视图是北面朝上;Tilt 属性值为 0,表示相机中心点与地球球心在同一直线上。当相机的 Heading 值不为 0 时,即将视点与相机的连线在垂直于 Y’ 轴的平面上在 0—360 度范围内旋转;当 Tilt 值不为0时,即将视点与相机的连线在垂直于 X’ 轴的平面上以顺时针(俯角)方向在0—90度范围内旋转。
表2 相机不同参数下的三维场景视图
Altitude : 7500km Heading : 0 Tilt : 0 Longitude : 0 Latitude : 0 |
|
Altitude : 7500km Heading : 0 Tilt : 0 Longitude : 126 Latitude : 23 |
|
Altitude : 5000km Heading : 25 Tilt : 45 Longitude : 0 Latitude : 0 |