Ellipsoid

笛卡尔坐标系中由方程(x / a)^2 + (y / b)^2 + (z / c)^2 = 1定义的二次曲面。主要由Bigemap GL用来表示行星体的形状。通常使用提供的常量之一,而不是直接构造此对象。
new Ellipsoid(x, y, z)
Parameters:
x (Number) (default 0) X方向的半径。
y (Number) (default 0) Y方向的半径。
z (Number) (default 0) Z方向的半径。
Throws
See:

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:
ellipsoid (Ellipsoid) 要复制的椭球体。
result (Ellipsoid) 存储结果的对象,如果要创建新实例,则为未定义对象。
(static) fromCartesian3(cartesian, result) → {Ellipsoid}
从指定X、Y和Z方向的半径的笛卡尔坐标计算椭球。
Parameters:
cartesian (Cartesian3) (default Cartesian3.ZERO) 椭球在x、y和z方向上的半径。
result (Ellipsoid) 存储结果的对象,如果要创建新实例,则为未定义对象。
Throws
See:
(static) pack(value, array, startingIndex) → {Array.<Number>}
将提供的实例存储到提供的数组中。
Parameters:
value (Ellipsoid) 要打包的值。
array (Array.<Number>) 要打包的数组。
startingIndex (Number) (default 0) 数组中开始打包元素的索引。
(static) unpack(array, startingIndex, result) → {Ellipsoid}
从压缩数组中检索实例。
Parameters:
array (Array.<Number>) 压缩数组。
startingIndex (Number) (default 0) 要解包的元素的起始索引。
result (Ellipsoid) 存储结果的对象。
cartesianArrayToCartographicArray(cartesians, result) → {Array.<Cartographic>}
将提供的cartesian数组转换为一组制图。
Parameters:
cartesians (Array.<Cartesian3>) 笛卡尔位置数组。
result (Array.<Cartographic>) 存储结果的对象。
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);
cartesianToCartographic(cartesian, result) → {Cartographic}
将提供的笛卡尔坐标转换为地图表示。笛卡尔坐标系在椭球的中心没有定义。
Parameters:
cartesian (Cartesian3) 要转换为地图表示的笛卡尔位置。
result (Cartographic) 存储结果的对象。
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);
cartographicArrayToCartesianArray(cartographics, result) → {Array.<Cartesian3>}
将提供的制图数组转换为笛卡尔数组。
Parameters:
cartographics (Array.<Cartographic>) 一系列制图位置。
result (Array.<Cartesian3>) 存储结果的对象。
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);
cartographicToCartesian(cartographic, result) → {Cartesian3}
将提供的地图转换为笛卡尔表示。
Parameters:
cartographic (Cartographic) 地图的位置。
result (Cartesian3) 存储结果的对象。
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);
clone(result) → {Ellipsoid}
复制椭球体实例。
Parameters:
result (Ellipsoid) 存储结果的对象,如果要创建新实例,则为未定义对象。
equals(right) → {Boolean}
将此椭球体与提供的椭球体组件进行比较,如果相等,则返回true,否则返回false
Parameters:
right (Ellipsoid) 另一个椭球体。
geocentricSurfaceNormal(cartesian, result) → {Cartesian3}
计算从该椭球体中心指向给定笛卡尔位置的单位向量。
Parameters:
cartesian (Cartesian3) 确定地心法向的笛卡尔坐标。
result (Cartesian3) 存储结果的对象。
geodeticSurfaceNormal(cartesian, result) → {Cartesian3}
计算在给定位置与椭球表面相切的平面的法向。
Parameters:
cartesian (Cartesian3) 确定曲面法向的笛卡尔位置。
result (Cartesian3) 存储结果的对象。
geodeticSurfaceNormalCartographic(cartographic, result) → {Cartesian3}
计算在给定位置与椭球表面相切的平面的法向。
Parameters:
cartographic (Cartographic) 确定大地测量法向的制图位置。
result (Cartesian3) 存储结果的对象。
getSurfaceNormalIntersectionWithZAxis(position, buffer, result) → {Cartesian3|undefined}
计算曲面法向与Z轴相交的点。
Parameters:
position (Cartesian3) 位置。必须在椭球面上。
buffer (Number) (default 0.0) 在检查点是否在椭球体中时,从椭球体大小中减去的缓冲区。在地球情况下,由于交叉点总是(相对地)非常靠近中心,因此对于普通的地球基准,不需要这种缓冲器。在WGS84基准面中,交叉点位于最大Z=+-42841.3115131382处(Z轴的0.673%)。如果长轴/轴旋转比大于2的平方根,则交点可能在椭球体之外。
result (Cartesian3) 要将结果复制到的笛卡尔,或未定义以创建和返回新实例。
Throws
scaleToGeocentricSurface(cartesian, result) → {Cartesian3}
沿地心面法向缩放提供的笛卡尔坐标位置,使其位于该椭球的表面上。
Parameters:
cartesian (Cartesian3) 要缩放的笛卡尔位置。
result (Cartesian3) 存储结果的对象。
scaleToGeodeticSurface(cartesian, result) → {Cartesian3}
沿大地测量面法向缩放提供的笛卡尔坐标位置,使其位于该椭球的表面上。如果位置在椭球体的中心,则此函数返回UNDEFINED。
Parameters:
cartesian (Cartesian3) 要缩放的笛卡尔位置。
result (Cartesian3) 存储结果的对象。
toString() → {String}
创建一个字符串,以“radii.x,radii.y,radii.z”格式表示此椭球体。
transformPositionFromScaledSpace(position, result) → {Cartesian3}
通过将其分量乘以Ellipsoid#radii的结果,从椭球缩放空间转换笛卡尔X、Y、Z位置。
Parameters:
position (Cartesian3) 要转换的位置。
result (Cartesian3) 要将结果复制到的位置,或未定义以创建和返回新实例的位置。
transformPositionToScaledSpace(position, result) → {Cartesian3}
将笛卡尔X、Y、Z位置转换为椭球缩放空间,方法是将其分量乘以Ellipsoid#oneOverRadii的结果。
Parameters:
position (Cartesian3) 要转换的位置。
result (Cartesian3) 要将结果复制到的位置,或未定义以创建和返回新实例的位置。