笛卡尔坐标系中由方程
new Ellipsoid(x, y, z)
(x / a)^2 + (y / b)^2 + (z / c)^2 = 1
定义的二次曲面。主要由Bigemap GL用来表示行星体的形状。通常使用提供的常量之一,而不是直接构造此对象。
Parameters:
x
(Number)
(default 0
)
X方向的半径。
y
(Number)
(default 0
)
Y方向的半径。
z
(Number)
(default 0
)
Z方向的半径。
Throws
-
DeveloperError : 所有半径分量必须大于或等于零。
Members
(static, constant) MOON : Ellipsoid
初始化为具有月球半径的球体的椭球体实例。
(static) packedLength : Number
用于将对象打包到数组中的元素数。
(static, constant) UNIT_SPHERE : Ellipsoid
初始化为半径(1.0、1.0、1.0)的椭球体实例。
(static, constant) WGS84 : Ellipsoid
初始化为wgs84标准的椭球体实例。
(readonly) maximumRadius : Number
获取椭圆体的最大半径。
(readonly) minimumRadius : Number
获取椭球的最小半径。
(readonly) oneOverRadii : Cartesian3
在椭圆体的半径上获取一个。
(readonly) oneOverRadiiSquared : Cartesian3
在椭圆体的平方半径上获取一个。
(readonly) radii : Cartesian3
获取椭球的半径。
(readonly) radiiSquared : Cartesian3
获取椭球的平方半径。
(readonly) radiiToTheFourth : Cartesian3
求椭球的半径上升到四次方。
Methods
(static) clone(ellipsoid, result) → {Ellipsoid}
复制椭球体实例。
Parameters:
从指定X、Y和Z方向的半径的笛卡尔坐标计算椭球。
Parameters:
Throws
-
DeveloperError : 所有半径分量必须大于或等于零。
将提供的实例存储到提供的数组中。
Parameters:
array
(Array.<Number>)
要打包的数组。
startingIndex
(Number)
(default 0
)
数组中开始打包元素的索引。
从压缩数组中检索实例。
Parameters:
array
(Array.<Number>)
压缩数组。
startingIndex
(Number)
(default 0
)
要解包的元素的起始索引。
将提供的cartesian数组转换为一组制图。
Parameters:
Example
//Create an array of Cartesians and determine their Cartographic representation on a WGS84 ellipsoid.
var positions = [new bmgl.Cartesian3(17832.12, 83234.52, 952313.73),
new bmgl.Cartesian3(17832.13, 83234.53, 952313.73),
new bmgl.Cartesian3(17832.14, 83234.54, 952313.73)]
var cartographicPositions = bmgl.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions);
将提供的笛卡尔坐标转换为地图表示。笛卡尔坐标系在椭球的中心没有定义。
Parameters:
Example
//Create a Cartesian and determine it's Cartographic representation on a WGS84 ellipsoid.
var position = new bmgl.Cartesian3(17832.12, 83234.52, 952313.73);
var cartographicPosition = bmgl.Ellipsoid.WGS84.cartesianToCartographic(position);
将提供的制图数组转换为笛卡尔数组。
Parameters:
Example
//Convert an array of Cartographics and determine their Cartesian representation on a WGS84 ellipsoid.
var positions = [new bmgl.Cartographic(bmgl.Math.toRadians(21), bmgl.Math.toRadians(78), 0),
new bmgl.Cartographic(bmgl.Math.toRadians(21.321), bmgl.Math.toRadians(78.123), 100),
new bmgl.Cartographic(bmgl.Math.toRadians(21.645), bmgl.Math.toRadians(78.456), 250)];
var cartesianPositions = bmgl.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions);
将提供的地图转换为笛卡尔表示。
Parameters:
Example
//Create a Cartographic and determine it's Cartesian representation on a WGS84 ellipsoid.
var position = new bmgl.Cartographic(bmgl.Math.toRadians(21), bmgl.Math.toRadians(78), 5000);
var cartesianPosition = bmgl.Ellipsoid.WGS84.cartographicToCartesian(position);
复制椭球体实例。
Parameters:
将此椭球体与提供的椭球体组件进行比较,如果相等,则返回
true
,否则返回false
。
Parameters:
计算从该椭球体中心指向给定笛卡尔位置的单位向量。
Parameters:
计算在给定位置与椭球表面相切的平面的法向。
Parameters:
计算在给定位置与椭球表面相切的平面的法向。
Parameters:
计算曲面法向与Z轴相交的点。
Parameters:
buffer
(Number)
(default 0.0
)
在检查点是否在椭球体中时,从椭球体大小中减去的缓冲区。在地球情况下,由于交叉点总是(相对地)非常靠近中心,因此对于普通的地球基准,不需要这种缓冲器。在WGS84基准面中,交叉点位于最大Z=+-42841.3115131382处(Z轴的0.673%)。如果长轴/轴旋转比大于2的平方根,则交点可能在椭球体之外。
Throws
-
DeveloperError : 职位是必需的。
-
DeveloperError : 椭球必须是旋转椭球(radii.x==radii.y)。
-
DeveloperError : 椭球体.radii.z必须大于0。
沿地心面法向缩放提供的笛卡尔坐标位置,使其位于该椭球的表面上。
Parameters:
沿大地测量面法向缩放提供的笛卡尔坐标位置,使其位于该椭球的表面上。如果位置在椭球体的中心,则此函数返回UNDEFINED。
Parameters:
创建一个字符串,以“radii.x,radii.y,radii.z”格式表示此椭球体。
通过将其分量乘以
Ellipsoid#radii
的结果,从椭球缩放空间转换笛卡尔X、Y、Z位置。
Parameters:
将笛卡尔X、Y、Z位置转换为椭球缩放空间,方法是将其分量乘以
Ellipsoid#oneOverRadii
的结果。