new Ellipsoid(x, y, z)
椭球体类。
| Name | Type | Default | Description |
|---|---|---|---|
x |
Number | 0 |
可选
X方向的半径值。 |
y |
Number | 0 |
可选
Y方向的半径值。 |
z |
Number | 0 |
可选
Z方向的半径值。 |
- See:
Throws:
-
所有的半径值必须大于或等于0。
- Type
- DeveloperError
Members
-
(static, constant) CGCS2000Ellipsoid
-
CGCS2000椭球体,其x,y,z方向的半径分别为6378137.0, 6378137.0, 6356752.31。
-
(static, constant) MOONEllipsoid
-
一个 Ellipsoid 实例初始化为具有月球半径的球体。
-
static packedLengthNumber
-
用于将对象打包到数组中的元素数。
-
(static, constant) UNIT_SPHEREEllipsoid
-
一个 Ellipsoid 实例初始化为 (1.0, 1.0, 1.0) 的半径。
-
(static, constant) WGS84Ellipsoid
-
球的实例,默认是椭球模式,即x,y,z方向的半径分别设为6378137, 6378137, 6356752.3142451793。
Example
SuperMap3D.Ellipsoid.WGS84 = SuperMap3D.freezeObject(new SuperMap3D.Ellipsoid(6378137.0, 6378137.0, 6356752.3142451793)); -
(static, constant) XIAN80Ellipsoid
-
西安80椭球体,其x,y,z方向的半径分别为6378140.0, 6378140.0, 6356755.29。
Example
var ellipsoid = SuperMap3D.Ellipsoid.XIAN80; -
readonly maximumRadiusNumber
-
获取椭球的最大半径。
-
readonly minimumRadiusNumber
-
获取椭球的最小半径。
-
readonly oneOverRadiiCartesian3
-
在椭球半径范围内获取一。
-
readonly oneOverRadiiSquaredCartesian3
-
在椭球半径的平方范围内取一。
-
readonly radiiCartesian3
-
获取椭球的半径。
-
readonly radiiSquaredCartesian3
-
获取椭球的平方半径。
-
readonly radiiToTheFourthCartesian3
-
获取椭球半径的四次方。
Methods
-
static clone(ellipsoid, result){Ellipsoid}
-
复制一个椭球实例。
Name Type Description ellipsoidEllipsoid 要复制的椭球。
resultEllipsoid 可选 存储结果的对象,如果应该创建一个新实例,则为 undefined。
Returns:
Type Description Ellipsoid 克隆的椭球体。(如果椭球未定义,则返回未定义) -
static fromCartesian3(cartesian, result){Ellipsoid}
-
根据指定 x、y 和 z 方向的半径的Cartesian计算椭球。
Name Type Default Description cartesianCartesian3 Cartesian3.ZERO 可选 椭球在 x、y 和 z 方向上的半径。
resultEllipsoid 可选 存储结果的对象,如果应该创建一个新实例,则为 undefined。
Throws:
-
所有半径必须大于或等于零。
- Type
- DeveloperError
Returns:
Type Description Ellipsoid 一个新的 Ellipsoid 实例。 -
-
static pack(value, array, startingIndex){Array.<Number>}
-
将提供的实例存储到提供的数组中。
Name Type Default Description valueEllipsoid 要打包的值。
arrayArray.<Number> 要打包的数组。
startingIndexNumber 0 可选 开始打包元素的数组索引。
Returns:
Type Description Array.<Number> 装入的数组。 -
static unpack(array, startingIndex, result){Ellipsoid}
-
从打包数组中检索实例。
Name Type Default Description arrayArray.<Number> 打包的数组。
startingIndexNumber 0 可选 要解包的元素的起始索引。
resultEllipsoid 可选 存储结果的对象。
Returns:
Type Description Ellipsoid 修改后的结果参数或新的椭球实例(如果未提供)。 -
cartesianArrayToCartographicArray(cartesians, result){Array.<Cartographic>}
-
将提供的Cartesian数组转换为投影数组。
Name Type Description cartesiansArray.<Cartesian3> Cartesian位置数组。
resultArray.<Cartographic> 可选 存储结果的对象。
Returns:
Type Description Array.<Cartographic> 如果未提供修改的结果参数或新的 Array 实例。 Example
//Create an array of Cartesians and determine their Cartographic representation on a WGS84 ellipsoid. var positions = [new SuperMap3D.Cartesian3(17832.12, 83234.52, 952313.73), new SuperMap3D.Cartesian3(17832.13, 83234.53, 952313.73), new SuperMap3D.Cartesian3(17832.14, 83234.54, 952313.73)] var cartographicPositions = SuperMap3D.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions); -
cartesianToCartographic(cartesian, result){Cartographic}
-
将提供的Cartesian坐标转换为投影表示,Cartesian在椭球体的中心未定义。
Name Type Description cartesianCartesian3 要转换为投影表示的Cartesian位置。
resultCartographic 可选 存储结果的对象。
Returns:
Type Description Cartographic 修改后的结果参数,如果没有提供新的投影实例,或者如果Cartesian位于椭球体的中心,则为未定义。 Example
//Create a Cartesian and determine it's Cartographic representation on a WGS84 ellipsoid. var position = new SuperMap3D.Cartesian3(17832.12, 83234.52, 952313.73); var cartographicPosition = SuperMap3D.Ellipsoid.WGS84.cartesianToCartographic(position); -
cartographicArrayToCartesianArray(cartographics, result){Array.<Cartesian3>}
-
将提供的投影数组转换为Cartesian数组。
Name Type Description cartographicsArray.<Cartographic> 一组投影位置。
resultArray.<Cartesian3> 可选 存储结果的对象。
Returns:
Type Description Array.<Cartesian3> 如果未提供修改的结果参数或新的 Array 实例。 Example
//Convert an array of Cartographics and determine their Cartesian representation on a WGS84 ellipsoid. var positions = [new SuperMap3D.Cartographic(SuperMap3D.Math.toRadians(21), SuperMap3D.Math.toRadians(78), 0), new SuperMap3D.Cartographic(SuperMap3D.Math.toRadians(21.321), SuperMap3D.Math.toRadians(78.123), 100), new SuperMap3D.Cartographic(SuperMap3D.Math.toRadians(21.645), SuperMap3D.Math.toRadians(78.456), 250)]; var cartesianPositions = SuperMap3D.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions); -
cartographicToCartesian(cartographic, result){Cartesian3}
-
将提供的投影转换为Cartesian表示法。
Name Type Description cartographicCartographic 投影位置。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 如果未提供修改的结果参数或新的 Cartesian3 实例。 Example
//Create a Cartographic and determine it's Cartesian representation on a WGS84 ellipsoid. var position = new SuperMap3D.Cartographic(SuperMap3D.Math.toRadians(21), SuperMap3D.Math.toRadians(78), 5000); var cartesianPosition = SuperMap3D.Ellipsoid.WGS84.cartographicToCartesian(position); -
clone(result){Ellipsoid}
-
复制一个椭球实例。
Name Type Description resultEllipsoid 可选 要复制的椭球。
Returns:
Type Description Ellipsoid 存储结果的对象,如果应该创建一个新实例,则为 undefined。 -
equals(right){Boolean}
-
将此 Ellipsoid 与提供的 Ellipsoid 进行比较,如果它们相等则返回 true ,否则返回 false 。
Name Type Description rightEllipsoid 可选 另一个椭球体。
Returns:
Type Description Boolean 如果相等,则为 true ,否则为 false 。 -
geocentricSurfaceNormal(cartesian, result){Cartesian3}
-
计算从该椭球中心指向提供的Cartesian位置的单位向量。
Name Type Description cartesianCartesian3 确定地心法线的cartesian。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 如果未提供修改的结果参数或新的 Cartesian3 实例。 -
geodeticSurfaceNormal(cartesian, result){Cartesian3}
-
计算在给定位置与椭球表面相切的平面法线。
Name Type Description cartesianCartesian3 要确定表面法线的cartesian位置。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 如果没有提供修改的结果参数或新的 Cartesian3 实例,或者如果找不到法线则未定义。 -
geodeticSurfaceNormalCartographic(cartographic, result){Cartesian3}
-
计算在给定位置与椭球表面相切的平面法线。
Name Type Description cartographicCartographic 确定大地法线的投影位置。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 如果未提供修改的结果参数或新的 Cartesian3 实例。 -
getLocalCurvature(surfacePosition, result){Cartesian2}
-
计算给定在地球表面位置的椭球曲率。
Name Type Description surfacePositionCartesian3 位于地球表面用于计算椭球曲率的位置。
resultCartesian2 可选 要将结果复制到的Cartesian坐标系,或者 undefined 以创建和返回新实例。
Throws:
-
位置是必须的
- Type
- DeveloperError
Returns:
Type Description Cartesian2 提供位置在椭球表面的曲率,以东北为方向 -
-
getSurfaceNormalIntersectionWithZAxis(position, buffer, result){Cartesian|undefined}
-
计算一个点,该点是表面法线与 z 轴的交点。
Name Type Default Description positionCartesian3 位置。必须在椭球的表面上。
bufferNumber 0.0 可选 检查点是否在椭球内时从椭球大小中减去的缓冲区。在地球情况下,使用公共地球基准,不需要这个缓冲区,因为交点总是(相对)非常靠近中心。 在 WGS84 基准中,交点位于最大 z = +-42841.31151331382(z 轴的 0.673%)。 如果 MajorAxis/AxisOfRotation 的比率大于 2 的平方根,则交点可能在椭球之外
resultCartesian 可选 要将结果复制到的Cartesian坐标系,或者 undefined 以创建和返回新实例。
Throws:
-
-
位置是必需的。
- Type
- DeveloperError
-
-
-
椭球体必须是旋转椭球体 (radii.x == radii.y)。
- Type
- DeveloperError
-
-
-
Ellipsoid.radii.z 必须大于 0。
- Type
- DeveloperError
-
Returns:
Type Description Cartesian | undefined 如果它在椭球体内,则为交点,否则为未定义。 -
-
scaleToGeocentricSurface(cartesian, result){Cartesian3}
-
沿地心表面法线缩放提供的cartesian位置,使其位于该椭球的表面上。
Name Type Description cartesianCartesian3 要缩放的Cartesian位置。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 如果未提供修改的结果参数或新的 Cartesian3 实例。 -
scaleToGeodeticSurface(cartesian, result){Cartesian3}
-
沿大地表面法线缩放提供的Cartesian位置,使其位于该椭球的表面上。如果该位置在椭球的中心,则此函数返回 undefined。
Name Type Description cartesianCartesian3 要缩放的Cartesian位置。
resultCartesian3 可选 存储结果的对象。
Returns:
Type Description Cartesian3 修改后的结果参数,如果没有提供新的 Cartesian3 实例,如果位置在中心,则为 undefined。 -
toString(){String}
-
以'(radii.x,radii.y,radii.z)'格式创建一个表示此椭球体的字符串。
Returns:
Type Description String 以'(radii.x,radii.y,radii.z)'格式表示此椭球的字符串。 -
transformPositionFromScaledSpace(position, result){Cartesian3}
-
通过将其分量乘以
Ellipsoid#radii的结果,从椭球体缩放空间转换Cartesian X、Y、Z 位置。Name Type Description positionCartesian3 要变换的位置。
resultCartesian3 可选 要将结果复制到的位置,或者 undefined 以创建和返回新实例。
Returns:
Type Description Cartesian3 在未缩放空间中表示的位置。如果它不是未定义的,则返回的实例是作为结果参数传递的实例,或者它的新实例。 -
transformPositionToScaledSpace(position, result){Cartesian3}
-
通过将其分量乘以
Ellipsoid#oneOverRadii的结果,将Cartesian X、Y、Z 位置转换为椭球缩放空间。Name Type Description positionCartesian3 要变换的位置。
resultCartesian3 可选 要将结果复制到的位置,或者 undefined 以创建和返回新实例。
Returns:
Type Description Cartesian3 在缩放空间中表示的位置。如果它不是未定义的,则返回的实例是作为结果参数传递的实例,或者它的新实例。