首页 / Cesium / API 文档
Ellipsoid
先看结论
参考椭球。所有经纬度与笛卡尔坐标的换算最终都落在这个三轴椭球上, Cesium 默认使用 WGS84。
new Cesium.Ellipsoid(x, y, z)
构造参数
| 参数 | 默认 | 说明 |
|---|---|---|
x | 0.0 | 赤道半径,米 |
y | 0.0 | 赤道半径,米;与 x 不等时形成旋转椭球 |
z | 0.0 | 极半径,米 |
预置实例
| 常量 | 说明 |
|---|---|
Ellipsoid.WGS84 | 长半轴 6378137.0 米、扁率 1/298.257223563,Cesium 的默认椭球 |
Ellipsoid.UNIT_SPHERE | 半径全为 1 的球,用于归一化方向计算 |
Ellipsoid.MOON | 月球椭球,半径约 1737400 米 |
属性
| 属性 | 说明 |
|---|---|
radii | 三轴半径,Cartesian3 |
radiiSquared | 半径平方,换算中的中间量 |
radiiToTheFourth | 半径四次方 |
oneOverRadii | 半径的倒数 |
oneOverRadiiSquared | 半径平方的倒数 |
minimumRadius | 三轴中的最小值,米 |
maximumRadius | 三轴中的最大值,米 |
坐标换算
| 方法 | 返回 | 说明 |
|---|---|---|
cartographicToCartesian(cartographic, result) | Cartesian3 | 经纬高转椭球面三维坐标 |
cartesianToCartographic(cartesian, result) | Cartographic | 三维坐标转经纬高;不在椭球上时高度为相对椭球面的值 |
cartographicArrayToCartesianArray(cartographics, result) | Array | 批量转换 |
cartesianArrayToCartographicArray(cartesians, result) | Array | 批量反向转换 |
geodeticSurfaceNormal(cartesian, result) | Cartesian3 | 该点处的椭球法线,单位向量 |
geodeticSurfaceNormalCartographic(cartographic, result) | Cartesian3 | 仅由经纬度求法线,无需先转笛卡尔 |
scaleToGeodeticSurface(cartesian, result) | Cartesian3 | 把点压到椭球面上的最近点 |
scaleToGeocentricSurface(cartesian, result) | Cartesian3 | 沿地心方向压到椭球面,与法线方向不同 |
transformPositionToScaledSpace(position, result) | Cartesian3 | 转到单位球空间,常用于法线与光照计算 |
示例:投影到地面
var ellipsoid = Cesium.Ellipsoid.WGS84;
var carto = Cesium.Cartographic.fromDegrees(116.39, 39.90, 320);
var position = ellipsoid.cartographicToCartesian(carto);
// 把悬空的点压回地面,保持经纬度不变
var onSurface = ellipsoid.scaleToGeodeticSurface(position);
// 该点的地面法线,可直接用于构造朝向矩阵
var normal = ellipsoid.geodeticSurfaceNormal(onSurface);
var heading = Cesium.Math.toRadians(30);
var transform = Cesium.Transforms.headingPitchRollToFixedFrame(
onSurface,
new Cesium.HeadingPitchRoll(heading, 0, 0),
ellipsoid
);
换用其他天体
用 viewer.scene.globe.ellipsoid 可以拿到当前椭球,
切换月球或火星数据时它会随场景改变。把 Ellipsoid.WGS84
写死在业务代码里,换天体后所有坐标都会偏移。
高度不是海拔。cartesianToCartographic 得到的高度是相对椭球面的大地高,
与地形瓦片给出的海拔存在差异。做高程查询时用 sampleTerrain,
不要拿椭球换算的结果当海拔。
经纬志(2026)。《Ellipsoid》。https://www.jingweizhi.com/cesium/api/ellipsoid.html(访问日期 2026-11-03)。