1.地理坐标转世界坐标(经纬度转笛卡尔坐标)
在使用 Cesium 的 API 时,底层的 3D 渲染引擎只识别基于地心的笛卡尔直角坐标(Cartesian3,单位:米)。因此,当我们调用setView或flyTo传入经纬度时,Cesium 内部会通过三角函数运算,将经纬度(角度)转换为地心直角坐标(X, Y, Z)。
Cesium.Cartesian3.fromDegrees(114.3, 30.5, 1000)2.角度转弧度
在setView和flyTo中,除了目标位置需要转换为笛卡尔坐标外,还有一个容易被忽略的细节:相机姿态角(heading、pitch、roll)的单位必须是弧度(Radian)。
Cesium 底层使用弧度制进行旋转矩阵和四元数运算,而我们日常习惯使用的是角度制(Degree)。因此,在设置姿态角时必须手动进行转换:
Cesium.Math.toRadians(0)