A quadratic surface defined in Cartesian coordinates by the equation
(x / a)^2 + (y / b)^2 + (z / c)^2 = 1
. Primarily used
by Cesium to represent the shape of planetary bodies.
Rather than constructing this object directly, one of the provided
constants is normally used.
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
x |
number |
0
|
可选 The radius in the x direction. |
y |
number |
0
|
可选 The radius in the y direction. |
z |
number |
0
|
可选 The radius in the z direction. |
Throws:
-
DeveloperError : All radii components must be greater than or equal to zero.
成员(属性)
static Cesium.Ellipsoid.default : Ellipsoid
The default ellipsoid used when not otherwise specified.
使用示例:
Cesium.Ellipsoid.default = Cesium.Ellipsoid.MOON;
// Apollo 11 landing site
const position = Cesium.Cartesian3.fromRadians(
0.67416,
23.47315,
);
static constant Cesium.Ellipsoid.MOON : Ellipsoid
An Ellipsoid instance initialized to a sphere with the lunar radius.
The number of elements used to pack the object into an array.
static constant Cesium.Ellipsoid.UNIT_SPHERE : Ellipsoid
An Ellipsoid instance initialized to radii of (1.0, 1.0, 1.0).
static constant Cesium.Ellipsoid.WGS84 : Ellipsoid
An Ellipsoid instance initialized to the WGS84 standard.
Gets the maximum radius of the ellipsoid.
Gets the minimum radius of the ellipsoid.
readonly oneOverRadii : Cartesian3
Gets one over the radii of the ellipsoid.
readonly oneOverRadiiSquared : Cartesian3
Gets one over the squared radii of the ellipsoid.
readonly radii : Cartesian3
Gets the radii of the ellipsoid.
readonly radiiSquared : Cartesian3
Gets the squared radii of the ellipsoid.
readonly radiiToTheFourth : Cartesian3
Gets the radii of the ellipsoid raise to the fourth power.
方法
static Cesium.Ellipsoid.clone(ellipsoid, result) → Ellipsoid
Duplicates an Ellipsoid instance.
参数名称 | 类型 | 描述信息 |
---|---|---|
ellipsoid |
Ellipsoid | The ellipsoid to duplicate. |
result |
Ellipsoid | 可选 The object onto which to store the result, or undefined if a new instance should be created. |
返回值:
The cloned Ellipsoid. (Returns undefined if ellipsoid is undefined)
static Cesium.Ellipsoid.fromCartesian3(cartesian, result) → Ellipsoid
Computes an Ellipsoid from a Cartesian specifying the radii in x, y, and z directions.
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
cartesian |
Cartesian3 |
Cartesian3.ZERO
|
可选 The ellipsoid's radius in the x, y, and z directions. |
result |
Ellipsoid | 可选 The object onto which to store the result, or undefined if a new instance should be created. |
返回值:
A new Ellipsoid instance.
Throws:
-
DeveloperError : All radii components must be greater than or equal to zero.
Stores the provided instance into the provided array.
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
value |
Ellipsoid | The value to pack. | |
array |
Array.<number> | The array to pack into. | |
startingIndex |
number |
0
|
可选 The index into the array at which to start packing the elements. |
返回值:
The array that was packed into
static Cesium.Ellipsoid.unpack(array, startingIndex, result) → Ellipsoid
Retrieves an instance from a packed array.
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
array |
Array.<number> | The packed array. | |
startingIndex |
number |
0
|
可选 The starting index of the element to be unpacked. |
result |
Ellipsoid | 可选 The object into which to store the result. |
返回值:
The modified result parameter or a new Ellipsoid instance if one was not provided.
cartesianArrayToCartographicArray(cartesians, result) → Array.<Cartographic>
Converts the provided array of cartesians to an array of cartographics.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesians |
Array.<Cartesian3> | An array of Cartesian positions. |
result |
Array.<Cartographic> | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Array instance if none was provided.
使用示例:
//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
Converts the provided cartesian to cartographic representation.
The cartesian is undefined at the center of the ellipsoid.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesian |
Cartesian3 | The Cartesian position to convert to cartographic representation. |
result |
Cartographic | 可选 The object onto which to store the result. |
返回值:
The modified result parameter, new Cartographic instance if none was provided, or undefined if the cartesian is at the center of the ellipsoid.
使用示例:
//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>
Converts the provided array of cartographics to an array of Cartesians.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartographics |
Array.<Cartographic> | An array of cartographic positions. |
result |
Array.<Cartesian3> | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Array instance if none was provided.
使用示例:
//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
Converts the provided cartographic to Cartesian representation.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartographic |
Cartographic | The cartographic position. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Cartesian3 instance if none was provided.
使用示例:
//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
Duplicates an Ellipsoid instance.
参数名称 | 类型 | 描述信息 |
---|---|---|
result |
Ellipsoid | 可选 The object onto which to store the result, or undefined if a new instance should be created. |
返回值:
The cloned Ellipsoid.
Compares this Ellipsoid against the provided Ellipsoid componentwise and returns
true
if they are equal, false
otherwise.
参数名称 | 类型 | 描述信息 |
---|---|---|
right |
Ellipsoid | 可选 The other Ellipsoid. |
返回值:
true
if they are equal, false
otherwise.
geocentricSurfaceNormal(cartesian, result) → Cartesian3
Computes the unit vector directed from the center of this ellipsoid toward the provided Cartesian position.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesian |
Cartesian3 | The Cartesian for which to to determine the geocentric normal. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Cartesian3 instance if none was provided.
geodeticSurfaceNormal(cartesian, result) → Cartesian3
Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesian |
Cartesian3 | The Cartesian position for which to to determine the surface normal. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Cartesian3 instance if none was provided, or undefined if a normal cannot be found.
geodeticSurfaceNormalCartographic(cartographic, result) → Cartesian3
Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartographic |
Cartographic | The cartographic position for which to to determine the geodetic normal. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Cartesian3 instance if none was provided.
getLocalCurvature(surfacePosition, result) → Cartesian2
Computes the ellipsoid curvatures at a given position on the surface.
参数名称 | 类型 | 描述信息 |
---|---|---|
surfacePosition |
Cartesian3 | The position on the ellipsoid surface where curvatures will be calculated. |
result |
Cartesian2 | 可选 The cartesian to which to copy the result, or undefined to create and return a new instance. |
返回值:
The local curvature of the ellipsoid surface at the provided position, in east and north directions.
Throws:
-
DeveloperError : position is required.
getSurfaceNormalIntersectionWithZAxis(position, buffer, result) → Cartesian3|undefined
Computes a point which is the intersection of the surface normal with the z-axis.
参数名称 | 类型 | 默认值 | 描述信息 |
---|---|---|---|
position |
Cartesian3 | the position. must be on the surface of the ellipsoid. | |
buffer |
number |
0.0
|
可选 A buffer to subtract from the ellipsoid size when checking if the point is inside the ellipsoid. In earth case, with common earth datums, there is no need for this buffer since the intersection point is always (relatively) very close to the center. In WGS84 datum, intersection point is at max z = +-42841.31151331382 (0.673% of z-axis). Intersection point could be outside the ellipsoid if the ratio of MajorAxis / AxisOfRotation is bigger than the square root of 2 |
result |
Cartesian3 | 可选 The cartesian to which to copy the result, or undefined to create and return a new instance. |
返回值:
the intersection point if it's inside the ellipsoid, undefined otherwise
Throws:
-
DeveloperError : position is required.
-
DeveloperError : Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y).
-
DeveloperError : Ellipsoid.radii.z must be greater than 0.
scaleToGeocentricSurface(cartesian, result) → Cartesian3
Scales the provided Cartesian position along the geocentric surface normal
so that it is on the surface of this ellipsoid.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesian |
Cartesian3 | The Cartesian position to scale. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter or a new Cartesian3 instance if none was provided.
scaleToGeodeticSurface(cartesian, result) → Cartesian3
Scales the provided Cartesian position along the geodetic surface normal
so that it is on the surface of this ellipsoid. If the position is
at the center of the ellipsoid, this function returns undefined.
参数名称 | 类型 | 描述信息 |
---|---|---|
cartesian |
Cartesian3 | The Cartesian position to scale. |
result |
Cartesian3 | 可选 The object onto which to store the result. |
返回值:
The modified result parameter, a new Cartesian3 instance if none was provided, or undefined if the position is at the center.
Computes an approximation of the surface area of a rectangle on the surface of an ellipsoid using
Gauss-Legendre 10th order quadrature.
参数名称 | 类型 | 描述信息 |
---|---|---|
rectangle |
Rectangle | The rectangle used for computing the surface area. |
返回值:
The approximate area of the rectangle on the surface of this ellipsoid.
Creates a string representing this Ellipsoid in the format '(radii.x, radii.y, radii.z)'.
返回值:
A string representing this ellipsoid in the format '(radii.x, radii.y, radii.z)'.
transformPositionFromScaledSpace(position, result) → Cartesian3
Transforms a Cartesian X, Y, Z position from the ellipsoid-scaled space by multiplying
its components by the result of
Ellipsoid#radii
.
参数名称 | 类型 | 描述信息 |
---|---|---|
position |
Cartesian3 | The position to transform. |
result |
Cartesian3 | 可选 The position to which to copy the result, or undefined to create and return a new instance. |
返回值:
The position expressed in the unscaled space. The returned instance is the
one passed as the result parameter if it is not undefined, or a new instance of it is.
transformPositionToScaledSpace(position, result) → Cartesian3
Transforms a Cartesian X, Y, Z position to the ellipsoid-scaled space by multiplying
its components by the result of
Ellipsoid#oneOverRadii
.
参数名称 | 类型 | 描述信息 |
---|---|---|
position |
Cartesian3 | The position to transform. |
result |
Cartesian3 | 可选 The position to which to copy the result, or undefined to create and return a new instance. |
返回值:
The position expressed in the scaled space. The returned instance is the
one passed as the result parameter if it is not undefined, or a new instance of it is.