笛卡尔坐标系中由等式定义的二次曲面
(x/a)^ 2 +(y/b)^ 2 +(z/c)^ 2 = 1
。主要用于用cesium表示行星体的形状。与其直接构造此对象,不如提供通常使用常量。
Name | Type | Default | Description |
---|---|---|---|
x
|
Number |
0
|
可选 x方向上的半径。 |
y
|
Number |
0
|
可选 y方向上的半径。 |
z
|
Number |
0
|
可选 z方向上的半径。 |
Throws:
-
DeveloperError :所有半径分量必须大于或等于零。
Members
static constant LSGlobe.Ellipsoid.MOON : Ellipsoid
一个Ellipsoid实例初始化为具有月球半径的球体。
用于将对象打包到数组中的元素数。
static constant LSGlobe.Ellipsoid.UNIT_SPHERE : Ellipsoid
一个椭圆形实例,初始化为半径(1.0,1.0,1.0)。
static constant LSGlobe.Ellipsoid.WGS84 : Ellipsoid
初始化为WGS84标准的Ellipsoid实例。
获取椭球的最大半径。
获取椭圆的最小半径。
readonly oneOverRadii : Cartesian3
在椭圆半径上获取一个。
readonly oneOverRadiiSquared : Cartesian3
在椭圆形的平方半径上获取一个。
readonly radii : Cartesian3
获取椭球的半径。
readonly radiiSquared : Cartesian3
获取椭球的平方半径。
readonly radiiToTheFourth : Cartesian3
将椭球的半径提高到四次方。
Methods
static LSGlobe.Ellipsoid.clone (ellipsoid, result ) → Ellipsoid
复制一个Ellipsoid实例。
Name | Type | Description |
---|---|---|
ellipsoid
|
Ellipsoid | 要复制的椭球。 |
result
|
Ellipsoid | 可选 将结果存储到的对象,如果是新对象则为undefined 实例应该被创建。 |
Returns:
克隆的椭球体。 (如果未定义椭球,则返回undefined)
static LSGlobe.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 LSGlobe.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.
var positions = [new LSGlobe.Cartesian3(17832.12, 83234.52, 952313.73),
new LSGlobe.Cartesian3(17832.13, 83234.53, 952313.73),
new LSGlobe.Cartesian3(17832.14, 83234.54, 952313.73)]
var cartographicPositions = LSGlobe.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.
var position = new LSGlobe.Cartesian3(17832.12, 83234.52, 952313.73);
var cartographicPosition = LSGlobe.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.
var positions = [new LSGlobe.Cartographic(LSGlobe.Math.toRadians(21), LSGlobe.Math.toRadians(78), 0),
new LSGlobe.Cartographic(LSGlobe.Math.toRadians(21.321), LSGlobe.Math.toRadians(78.123), 100),
new LSGlobe.Cartographic(LSGlobe.Math.toRadians(21.645), LSGlobe.Math.toRadians(78.456), 250)];
var cartesianPositions = LSGlobe.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.
var position = new LSGlobe.Cartographic(LSGlobe.Math.toRadians(21), LSGlobe.Math.toRadians(78), 5000);
var cartesianPosition = LSGlobe.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:
真正
如果相等,
假
除此以外。
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 | 可选 将结果复制到的笛卡尔坐标,或创建和创建时未定义的笛卡尔坐标 返回一个新实例。 |
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实例;如果位置为中心,则未定义。
使用以下公式计算椭圆体表面上矩形的表面积的近似值高斯-勒让德(Gauss-Legendre)10阶正交。
Name | Type | Description |
---|---|---|
rectangle
|
Rectangle | 用于计算表面积的矩形。 |
Returns:
此椭圆形表面上矩形的近似面积。
创建以'(radii.x,radii.y,radii.z)'格式表示此Ellipsoid的字符串。
Returns:
以'(radii.x,radii.y,radii.z)格式表示此椭圆体的字符串。
transformPositionFromScaledSpace (position, result ) → Cartesian3
通过乘以变换椭圆形缩放空间的笛卡尔X,Y,Z位置其组件是通过
Ellipsoid#radii
的结果得出的。
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 要转换的位置。 |
result
|
Cartesian3 | 可选 将结果复制到的位置,或者未定义的位置来创建和 返回一个新实例。 |
Returns:
在无标度空间中表示的位置。返回的实例是 如果未定义,则将其作为结果参数传递,或者将其作为新实例传递。
transformPositionToScaledSpace (position, result ) → Cartesian3
通过乘以将笛卡尔X,Y,Z位置转换为椭圆形缩放的空间其组件是通过
Ellipsoid#oneOverRadii
的结果得出的。
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 要转换的位置。 |
result
|
Cartesian3 | 可选 将结果复制到的位置,或者未定义的位置来创建和 返回一个新实例。 |
Returns:
在比例空间中表示的位置。返回的实例是 如果未定义,则将其作为结果参数传递,或者将其作为新实例传递。