Ellipsoid

在笛卡尔坐标系中由方程 (x / a)^2 + (y / b)^2 + (z / c)^2 = 1定义的二次曲面。主要由 Cesium用来表示行星体的形状。 通常不直接构造此对象,而是使用提供的 常量之一。

new Cesium.Ellipsoid(cartographics, result)Array.<Cartesian3>

Name Type Description
cartographics Array.<Cartographic> 地理坐标位置数组。
result Array.<Cartesian3> optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回新的数组实例。
Example:
//转换地理坐标数组并确定其在WGS84椭球上的笛卡尔表示。
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);
See:

Members

static Cesium.Ellipsoid.default : Ellipsoid

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

// 阿波罗11号着陆点
const position = Cesium.Cartesian3.fromRadians(
  0.67416,
  23.47315,
);

static constant Cesium.Ellipsoid.MARS : Ellipsoid

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

static constant Cesium.Ellipsoid.MOON : Ellipsoid

初始化为月球半径球体的椭球实例。

static Cesium.Ellipsoid.packedLength : number

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

static constant Cesium.Ellipsoid.UNIT_SPHERE : Ellipsoid

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

static constant Cesium.Ellipsoid.WGS84 : Ellipsoid

初始化为WGS84标准的椭球实例。

readonly maximumRadius : number

获取椭球的最大半径。

readonly minimumRadius : number

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

readonly oneOverRadiiSquared : Cartesian3

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

readonly radiiToTheFourth : Cartesian3

获取椭球半径的四次方。

Methods

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

复制椭球实例。
Name Type Description
ellipsoid Ellipsoid 要复制的椭球。
result Ellipsoid optional 存储结果的对象,如果应创建新实例则为undefined。
Returns:
被克隆的椭球。(如果椭球未定义则返回undefined)

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

从指定x、y和z方向半径的笛卡尔坐标计算椭球。
Name Type Default Description
cartesian Cartesian3 Cartesian3.ZERO optional 椭球在x、y和z方向的半径。
result Ellipsoid optional 存储结果的对象,如果应创建新实例则为undefined。
Returns:
新的椭球实例。
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:
修改后的结果参数,如果未提供则返回新的椭球实例。

cartesianArrayToCartographicArray(cartesians, result)Array.<Cartographic>

将提供的笛卡尔坐标数组转换为地理坐标数组。
Name Type Description
cartesians Array.<Cartesian3> 笛卡尔位置数组。
result Array.<Cartographic> optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回新的数组实例。
Example:
//创建笛卡尔坐标数组并确定其在WGS84椭球上的地理坐标表示。
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:
修改后的结果参数,如果未提供则返回新的Cartographic实例,如果笛卡尔坐标在椭球中心则返回undefined。
Example:
//创建笛卡尔坐标并确定其在WGS84椭球上的地理坐标表示。
const position = new Cesium.Cartesian3(17832.12, 83234.52, 952313.73);
const cartographicPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(position);

cartographicArrayToCartesianArray(cartographics, result)Array.<Cartesian3>

Converts the provided array of cartographics to an array of Cartesians.
Name Type Description
cartographics Array.<Cartographic> An array of cartographic positions.
result Array.<Cartesian3> optional The object onto which to store the result.
Returns:
The modified result parameter or a new Array instance if none was provided.
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:
修改后的结果参数,如果未提供则返回新的Cartesian3实例。
Example:
//创建地理坐标并确定其在WGS84椭球上的笛卡尔表示。
const position = new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 5000);
const cartesianPosition = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
复制椭球实例。
Name Type Description
result Ellipsoid optional 存储结果的对象,如果应创建新实例则为undefined。
Returns:
被克隆的椭球。

equals(right)boolean

将此椭球与提供的椭球进行逐分量比较,如果相等则返回 true,否则返回false
Name Type Description
right Ellipsoid optional 另一个椭球。
Returns:
如果相等则返回true,否则返回false

geocentricSurfaceNormal(cartesian, result)Cartesian3

Computes the unit vector directed from the center of this ellipsoid toward the provided Cartesian position.
Name Type Description
cartesian Cartesian3 The Cartesian for which to to determine the geocentric normal.
result Cartesian3 optional The object onto which to store the result.
Returns:
The modified result parameter or a new Cartesian3 instance if none was provided.

geodeticSurfaceNormal(cartesian, result)Cartesian3

计算在给定位置上与椭球表面相切的平面法向量。
Name Type Description
cartesian Cartesian3 要确定表面法向量的笛卡尔坐标位置。
result Cartesian3 optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回新的Cartesian3实例,如果找不到法向量则返回undefined。

geodeticSurfaceNormalCartographic(cartographic, result)Cartesian3

计算在给定位置上与椭球表面相切的平面法向量。
Name Type Description
cartographic Cartographic 要确定大地法向量的地理坐标位置。
result Cartesian3 optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回新的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%)。 如果长轴/旋转轴的比率大于2的平方根,交点可能在椭球外部。
result Cartesian3 optional 复制结果到的笛卡尔坐标,如果为undefined则创建并返回新实例。
Returns:
如果交点在椭球内则返回交点,否则返回undefined
Throws:

scaleToGeocentricSurface(cartesian, result)Cartesian3

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

scaleToGeodeticSurface(cartesian, result)Cartesian3

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

surfaceArea(rectangle)number

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

toString()string

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

transformPositionFromScaledSpace(position, result)Cartesian3

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

transformPositionToScaledSpace(position, result)Cartesian3

将笛卡尔X、Y、Z位置转换到椭球缩放空间,将其各分量乘以 Ellipsoid#oneOverRadii的结果。
Name Type Description
position Cartesian3 要转换的位置。
result Cartesian3 optional 复制结果到的位置,如果为undefined则创建并返回新实例。
Returns:
在缩放空间中表示的位置。返回的实例是 作为参数传递的result(如果不为undefined),否则是新实例。
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.