由等式
(x/a)^2 + (y/b)^2 + (z/c)^2 = 1
在笛卡尔坐标中定义的二次曲面。cesium主要使用cesium来表示行星体的形状。通常使用提供的常量之一,而不是直接构造此对象。
Name | Type | Default | Description |
---|---|---|---|
x
|
Number |
0
|
可选 x 方向的半径。 |
y
|
Number |
0
|
可选 y 方向的半径。 |
z
|
Number |
0
|
可选 z 方向的半径。 |
Throws:
-
DeveloperError : 所有半径分量必须大于或等于零。
Members
static constant Cesium.Ellipsoid.MOON : Ellipsoid
一个 Ellipsoid 实例初始化为具有月球半径的球体。
用于将对象打包到数组中的元素数。
static constant Cesium.Ellipsoid.UNIT_SPHERE : Ellipsoid
一个 Ellipsoid 实例初始化为 (1.0, 1.0, 1.0) 的半径。
static constant Cesium.Ellipsoid.WGS84 : Ellipsoid
初始化为 WGS84 标准的 Ellipsoid 实例。
获取椭球的最大半径。
获取椭球的最小半径。
readonly oneOverRadii : Cartesian3
在椭球半径上得到一个。
readonly oneOverRadiiSquared : Cartesian3
在椭圆体的平方半径上得到一个。
readonly radii : Cartesian3
获取椭球的半径。
readonly radiiSquared : Cartesian3
获取椭圆体的平方半径。
readonly radiiToTheFourth : Cartesian3
获取椭球半径的四次方。
Methods
static Cesium.Ellipsoid.clone (ellipsoid, result ) → Ellipsoid
复制一个 Ellipsoid 实例。
Name | Type | Description |
---|---|---|
ellipsoid
|
Ellipsoid | 要复制的椭圆体。 |
result
|
Ellipsoid | 可选 存储结果的对象,如果应该创建一个新实例,则为 undefined。 |
Returns:
克隆的椭球体。 (如果椭圆体未定义,则返回未定义)
static Cesium.Ellipsoid.fromCartesian3 ( cartesian , result ) → Ellipsoid
根据指定 x、y 和 z 方向的半径的笛卡尔计算椭圆体。
Name | Type | Default | Description |
---|---|---|---|
cartesian
|
Cartesian3 |
Cartesian3.ZERO
|
可选 椭球在 x、y 和 z 方向上的半径。 |
result
|
Ellipsoid | 可选 存储结果的对象,如果应该创建一个新实例,则为 undefined。 |
Returns:
一个新的 Ellipsoid 实例。
Throws:
-
DeveloperError : 所有半径分量必须大于或等于零。
将提供的实例存储到提供的数组中。
Name | Type | Default | Description |
---|---|---|---|
value
|
Ellipsoid | 要打包的值。 | |
array
|
Array.<Number> | 要打包的数组。 | |
startingIndex
|
Number |
0
|
可选 开始打包元素的数组索引。 |
Returns:
装入的数组
static Cesium.Ellipsoid.unpack (array, startingIndex , result ) → Ellipsoid
从打包数组中检索实例。
Name | Type | Default | Description |
---|---|---|---|
array
|
Array.<Number> | 打包的数组。 | |
startingIndex
|
Number |
0
|
可选 要解包的元素的起始索引。 |
result
|
Ellipsoid | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 Ellipsoid 实例(如果未提供)。
cartesianArrayToCartographicArray (cartesians, result ) → Array.< Cartographic >
将提供的笛卡尔数组转换为制图数组。
Name | Type | Description |
---|---|---|
cartesians
|
Array.< Cartesian3 > | 笛卡尔位置数组。 |
result
|
Array.< Cartographic > | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 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
将提供的笛卡尔坐标转换为制图表示。笛卡尔在椭圆体的中心未定义。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 要转换为制图表示的笛卡尔位置。 |
result
|
Cartographic | 可选 存储结果的对象。 |
Returns:
修改后的结果参数,如果没有提供新的制图实例,或者如果笛卡尔位于椭圆体的中心,则为未定义。
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 > | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 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 | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 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);
clone ( result ) → Ellipsoid
复制一个 Ellipsoid 实例。
Name | Type | Description |
---|---|---|
result
|
Ellipsoid | 可选 存储结果的对象,如果应该创建一个新实例,则为 undefined。 |
Returns:
克隆的椭球体。
将此 Ellipsoid 与提供的 Ellipsoid 组件进行比较,如果它们相等则返回
true
,否则返回
false
。
Name | Type | Description |
---|---|---|
right
|
Ellipsoid | 可选 另一个椭球体。 |
Returns:
如果它们相等,则为
true
,否则为
false
。
geocentricSurfaceNormal (cartesian, result ) → Cartesian3
计算从该椭球中心指向提供的笛卡尔位置的单位向量。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 确定地心法线的笛卡尔坐标。 |
result
|
Cartesian3 | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 Cartesian3 实例。
geodeticSurfaceNormal (cartesian, result ) → Cartesian3
计算在给定位置与椭球表面相切的平面法线。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 要确定表面法线的笛卡尔位置。 |
result
|
Cartesian3 | 可选 存储结果的对象。 |
Returns:
如果没有提供修改的结果参数或新的 Cartesian3 实例,或者如果找不到法线则未定义。
geodeticSurfaceNormalCartographic (cartographic, result ) → Cartesian3
计算在给定位置与椭球表面相切的平面法线。
Name | Type | Description |
---|---|---|
cartographic
|
Cartographic | 确定大地法线的制图位置。 |
result
|
Cartesian3 | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 Cartesian3 实例。
getSurfaceNormalIntersectionWithZAxis (position, buffer , result ) → Cartesian3 |undefined
计算一个点,该点是表面法线与 z 轴的交点。
Name | Type | Default | Description |
---|---|---|---|
position
|
Cartesian3 | 位置。必须在椭球的表面上。 | |
buffer
|
Number |
0.0
|
可选 检查点是否在椭球内时从椭球大小中减去的缓冲区。在地球情况下,使用公共地球基准,不需要这个缓冲区,因为交点总是(相对)非常靠近中心。在 WGS84 基准中,交点位于最大 z = +-42841.31151331382(z 轴的 0.673%)。如果 MajorAxis/AxisOfRotation 的比率大于 2 的平方根,则交点可能在椭球之外 |
result
|
Cartesian3 | 可选 要将结果复制到的笛卡尔坐标系,或者 undefined 以创建和返回新实例。 |
Returns:
如果它在椭圆体内,则为交点,否则为未定义
Throws:
-
DeveloperError : 位置是必需的。
-
DeveloperError : 椭球体必须是旋转椭球体 (radii.x == radii.y)。
-
DeveloperError : Ellipsoid.radii.z 必须大于 0。
scaleToGeocentricSurface (cartesian, result ) → Cartesian3
沿地心表面法线缩放提供的笛卡尔位置,使其位于该椭圆体的表面上。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 要缩放的笛卡尔位置。 |
result
|
Cartesian3 | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 Cartesian3 实例。
scaleToGeodeticSurface (cartesian, result ) → Cartesian3
沿大地表面法线缩放提供的笛卡尔位置,使其位于该椭圆体的表面上。如果该位置在椭圆体的中心,则此函数返回 undefined。
Name | Type | Description |
---|---|---|
cartesian
|
Cartesian3 | 要缩放的笛卡尔位置。 |
result
|
Cartesian3 | 可选 存储结果的对象。 |
Returns:
修改后的结果参数,如果没有提供新的 Cartesian3 实例,如果位置在中心,则为 undefined。
使用 Gauss-Legendre 10 阶求积计算椭圆体表面上矩形表面积的近似值。
Name | Type | Description |
---|---|---|
rectangle
|
Rectangle | 用于计算表面积的矩形。 |
Returns:
该椭圆体表面上矩形的近似面积。
以'(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 | 可选 要将结果复制到的位置,或者 undefined 以创建和返回新实例。 |
Returns:
在未缩放空间中表示的位置。如果它不是未定义的,则返回的实例是作为结果参数传递的实例,或者它的新实例。
transformPositionToScaledSpace (position, result ) → Cartesian3
通过将其分量乘以
Ellipsoid#oneOverRadii
的结果,将笛卡尔 X、Y、Z 位置转换为椭圆体缩放空间。
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 要变换的位置。 |
result
|
Cartesian3 | 可选 要将结果复制到的位置,或者 undefined 以创建和返回新实例。 |
Returns:
在缩放空间中表示的位置。如果它不是未定义的,则返回的实例是作为结果参数传递的实例,或者它的新实例。