Ellipsoid

A quadratic surface defined in Cartesian coordinates by the equation (x / a)^2 + (y / b)^2 + (z / c)^2 = 1. Primarily used by Cesium to represent the shape of planetary bodies. Rather than constructing this object directly, one of the provided constants is normally used.

new Cesium.Ellipsoid(x, y, z)

Name Type Default Description
x number 0 optional x 方向的半径。
y number 0 optional y 方向的半径。
z number 0 optional z 方向的半径。
Throws:
See:

Members

static Cesium.Ellipsoid.default : Ellipsoid

未另行指定时使用的默认椭球体。
Example:
Cesium.Ellipsoid.default = Cesium.Ellipsoid.MOON;

// Apollo 11 landing site
const position = Cesium.Cartesian3.fromRadians(
  0.67416,
  23.47315,
);

static constant Cesium.Ellipsoid.MARS : Ellipsoid

初始化为具有火星平均半径的球体的 Ellipsoid 实例。 来源:https://epsg.io/104905

static constant Cesium.Ellipsoid.MOON : Ellipsoid

初始化为具有月球半径的球体的 Ellipsoid 实例。

static Cesium.Ellipsoid.packedLength : number

用于将对象打包到数组中的元素数量。

static constant Cesium.Ellipsoid.UNIT_SPHERE : Ellipsoid

初始化为半径 (1.0, 1.0, 1.0) 的 Ellipsoid 实例。

static constant Cesium.Ellipsoid.WGS84 : Ellipsoid

初始化为 WGS84 标准的 Ellipsoid 实例。

readonly maximumRadius : number

获取椭球体的最大半径。

readonly minimumRadius : number

获取椭球体的最小半径。
获取椭球体半径的倒数。

readonly oneOverRadiiSquared : Cartesian3

获取椭球体半径平方的倒数。
获取椭球体的半径。
获取椭球体半径的平方。

readonly radiiToTheFourth : Cartesian3

获取椭球体半径的四次方。

Methods

static Cesium.Ellipsoid.clone(ellipsoid, result)Ellipsoid

复制一个 Ellipsoid 实例。
Name Type Description
ellipsoid Ellipsoid 要复制的椭球体。
result Ellipsoid optional 用于存储结果的对象,如果要创建新实例则为 undefined。
Returns:
克隆的 Ellipsoid。(如果椭球体为 undefined 则返回 undefined)

static Cesium.Ellipsoid.fromCartesian3(cartesian, result)Ellipsoid

根据指定 x、y 和 z 方向半径的 Cartesian 计算一个 Ellipsoid。
Name Type Default Description
cartesian Cartesian3 Cartesian3.ZERO optional 椭球体在 x、y 和 z 方向的半径。
result Ellipsoid optional 用于存储结果的对象,如果要创建新实例则为 undefined。
Returns:
一个新的 Ellipsoid 实例。
Throws:
See:

static Cesium.Ellipsoid.pack(value, array, startingIndex)Array.<number>

将所提供的实例存储到所提供的数组中。
Name Type Default Description
value Ellipsoid 要打包的值。
array Array.<number> 要打包到的数组。
startingIndex number 0 optional 开始打包元素的数组索引。
Returns:
已打包到的数组

static Cesium.Ellipsoid.unpack(array, startingIndex, result)Ellipsoid

从打包的数组中检索一个实例。
Name Type Default Description
array Array.<number> 打包后的数组。
startingIndex number 0 optional 要解包的元素起始索引。
result Ellipsoid optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Ellipsoid 实例。

cartesianArrayToCartographicArray(cartesians, result)Array.<Cartographic>

将所提供的笛卡尔坐标数组转换为大地坐标数组。
Name Type Description
cartesians Array.<Cartesian3> 笛卡尔坐标位置数组。
result Array.<Cartographic> optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Array 实例。
Example:
//Create an array of Cartesians and determine their Cartographic representation on a WGS84 ellipsoid.
const positions = [new Cesium.Cartesian3(17832.12, 83234.52, 952313.73),
                 new Cesium.Cartesian3(17832.13, 83234.53, 952313.73),
                 new Cesium.Cartesian3(17832.14, 83234.54, 952313.73)]
const cartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions);

cartesianToCartographic(cartesian, result)Cartographic

将所提供的笛卡尔坐标转换为大地坐标表示。 在椭球体中心处,笛卡尔坐标为 undefined。
Name Type Description
cartesian Cartesian3 要转换为大地坐标表示的笛卡尔坐标位置。
result Cartographic optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回新的 Cartographic 实例;如果笛卡尔坐标位于椭球体中心则返回 undefined。
Example:
//Create a Cartesian and determine it's Cartographic representation on a WGS84 ellipsoid.
const position = new Cesium.Cartesian3(17832.12, 83234.52, 952313.73);
const cartographicPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(position);

cartographicArrayToCartesianArray(cartographics, result)Array.<Cartesian3>

将所提供的大地坐标数组转换为笛卡尔坐标数组。
Name Type Description
cartographics Array.<Cartographic> 大地坐标位置数组。
result Array.<Cartesian3> optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Array 实例。
Example:
//Convert an array of Cartographics and determine their Cartesian representation on a WGS84 ellipsoid.
const positions = [new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 0),
                 new Cesium.Cartographic(Cesium.Math.toRadians(21.321), Cesium.Math.toRadians(78.123), 100),
                 new Cesium.Cartographic(Cesium.Math.toRadians(21.645), Cesium.Math.toRadians(78.456), 250)];
const cartesianPositions = Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions);

cartographicToCartesian(cartographic, result)Cartesian3

将所提供的大地坐标转换为笛卡尔坐标表示。
Name Type Description
cartographic Cartographic 大地坐标位置。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Cartesian3 实例。
Example:
//Create a Cartographic and determine it's Cartesian representation on a WGS84 ellipsoid.
const position = new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 5000);
const cartesianPosition = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
复制一个 Ellipsoid 实例。
Name Type Description
result Ellipsoid optional 用于存储结果的对象,如果要创建新实例则为 undefined。
Returns:
克隆的 Ellipsoid。

equals(right)boolean

将此 Ellipsoid 与所提供的 Ellipsoid 逐项比较,如果它们相等则返回 true,否则返回 false
Name Type Description
right Ellipsoid optional 另一个 Ellipsoid。
Returns:
如果它们相等则为 true,否则为 false

geocentricSurfaceNormal(cartesian, result)Cartesian3

计算从此椭球体中心指向所提供的笛卡尔坐标位置的单位向量。
Name Type Description
cartesian Cartesian3 要确定地心法线的笛卡尔坐标。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Cartesian3 实例。

geodeticSurfaceNormal(cartesian, result)Cartesian3

计算在所提供的位置处与椭球体表面相切的平面的法线。
Name Type Description
cartesian Cartesian3 要确定表面法线的笛卡尔坐标位置。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Cartesian3 实例;如果无法找到法线则返回 undefined。

geodeticSurfaceNormalCartographic(cartographic, result)Cartesian3

计算在所提供的位置处与椭球体表面相切的平面的法线。
Name Type Description
cartographic Cartographic 要确定测地法线的大地坐标位置。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Cartesian3 实例。

getLocalCurvature(surfacePosition, result)Cartesian2

计算表面给定位置处的椭球体曲率。
Name Type Description
surfacePosition Cartesian3 将计算曲率的椭球体表面位置。
result Cartesian2 optional 要复制结果的笛卡尔坐标,如果要创建并返回新实例则为 undefined。
Returns:
在所提供的位置处椭球体表面的局部曲率,以东和北方向表示。
Throws:

getSurfaceNormalIntersectionWithZAxis(position, buffer, result)Cartesian3|undefined

计算表面法线与 z 轴相交的点。
Name Type Default Description
position Cartesian3 该位置。必须位于椭球体表面上。
buffer number 0.0 optional 用于检查点是否在椭球体内部时从椭球体大小中减去的缓冲区。 对于地球的情况,使用常见的地球基准时,不需要此缓冲区,因为交点(相对地)总是非常接近中心。 在 WGS84 基准中,交点的最大 z = +-42841.31151331382(z 轴的 0.673%)。 如果 MajorAxis / AxisOfRotation 的比值大于 2 的平方根,交点可能在椭球体外部
result Cartesian3 optional 要复制结果的笛卡尔坐标,如果要创建并 返回新实例则为 undefined。
Returns:
如果交点在椭球体内部则为交点,否则为 undefined
Throws:

scaleToGeocentricSurface(cartesian, result)Cartesian3

沿地心表面法线缩放所提供的笛卡尔坐标位置, 使其位于此椭球体的表面上。
Name Type Description
cartesian Cartesian3 要缩放的笛卡尔坐标位置。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回一个新的 Cartesian3 实例。

scaleToGeodeticSurface(cartesian, result)Cartesian3

沿测地表面法线缩放所提供的笛卡尔坐标位置, 使其位于此椭球体的表面上。如果位置 位于椭球体中心,此函数返回 undefined。
Name Type Description
cartesian Cartesian3 要缩放的笛卡尔坐标位置。
result Cartesian3 optional 用于存储结果的对象。
Returns:
修改后的 result 参数,如果未提供则返回新的 Cartesian3 实例;如果位置位于中心则返回 undefined。

surfaceArea(rectangle)number

使用 Gauss-Legendre 10 阶求积法计算椭球体表面上矩形表面积的近似值。
Name Type Description
rectangle Rectangle 用于计算表面积的矩形。
Returns:
此椭球体表面上矩形的近似面积。

toString()string

创建表示此 Ellipsoid 的字符串,格式为 '(radii.x, radii.y, radii.z)'。
Returns:
表示此椭球体的字符串,格式为 '(radii.x, radii.y, radii.z)'。

transformPositionFromScaledSpace(position, result)Cartesian3

通过将其分量乘以 Ellipsoid#radii 的结果, 将笛卡尔 X、Y、Z 位置从椭球体缩放空间转换。
Name Type Description
position Cartesian3 要转换的位置。
result Cartesian3 optional 要复制结果的位置,如果要创建并 返回新实例则为 undefined。
Returns:
在未缩放空间中表示的位置。返回的实例是 作为 result 参数传入的实例(如果不为 undefined),否则是新实例。

transformPositionToScaledSpace(position, result)Cartesian3

通过将其分量乘以 Ellipsoid#oneOverRadii 的结果, 将笛卡尔 X、Y、Z 位置转换到椭球体缩放空间。
Name Type Description
position Cartesian3 要转换的位置。
result Cartesian3 optional 要复制结果的位置,如果要创建并 返回新实例则为 undefined。
Returns:
在缩放空间中表示的位置。返回的实例是 作为 result 参数传入的实例(如果不为 undefined),否则是新实例。
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。