麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - Ellipsoid 中文文档

本文介绍下Cesium中 Ellipsoid API的详细使用说明。

Ellipsoid API 调用方法

new Cesium.Ellipsoid(x, y, z)
在笛卡尔坐标下定义的二次曲面,其方程为(x / a)^2 + (y / b)^2 + (z / c)^2 = 1。 Cesium主要用其表示行星(planetary bodies)的形状。 通常使用所提供的一个常量,而不是直接构造这个对象。
Name Type Default Description
x Number 0 optional x方向上的半径。
y Number 0 optional y方向上的半径。
z Number 0 optional z方向上的半径。
异常情况:
参考:

成员变量

staticconstantCesium.Ellipsoid.MOON : Ellipsoid
初始化为具有月球半径的球体的椭球体实例。
staticCesium.Ellipsoid.packedLength : Number
用于将对象打包成数组的元素数。
staticconstantCesium.Ellipsoid.UNIT_SPHERE : Ellipsoid
初始化为半径(1.0,1.0,1.0)的椭球体实例。
staticconstantCesium.Ellipsoid.WGS84 : Ellipsoid
一个初始化为WGS84标准的椭球体实例。
readonlymaximumRadius : Number
获取椭球的最大半径。
readonlyminimumRadius : Number
获取椭球的最小半径。
readonlyoneOverRadii : Cartesian3
获取1除以椭球的半径。
readonlyoneOverRadiiSquared : Cartesian3
获取1除以椭球半径的平方。
获取椭球的半径。
readonlyradiiSquared : Cartesian3
获取椭球的半径的平方。
readonlyradiiToTheFourth : Cartesian3
获取椭球的半径的四次方。

内置方法

staticCesium.Ellipsoid.clone(ellipsoid, result)Ellipsoid
复制椭球体实例。
Name Type Description
ellipsoid Ellipsoid 要复制的椭球体。
result Ellipsoid optional 要将结果存储到其上的对象,如果要创建新实例,则为未定义对象。
返回值:
克隆的椭球体。(如果椭球面未定义,则返回undefined)
staticCesium.Ellipsoid.fromCartesian3(cartesian, result)Ellipsoid
从指定x、y和z方向的半径的笛卡尔坐标计算椭球体。
Name Type Default Description
cartesian Cartesian3 Cartesian3.ZERO optional 椭球在x、y和z方向上的半径。
result Ellipsoid optional 要将结果存储到其上的对象,如果要创建新实例,则为未定义对象。
返回值:
一个新的椭球体实例。
异常情况:
参考:
staticCesium.Ellipsoid.pack(value, array, startingIndex)Array.<Number>
将提供的实例存储到提供的数组中。
Name Type Default Description
value Ellipsoid 要包装的值。
array Array.<Number> 要被包装到的数组。
startingIndex Number 0 optional 开始包装元素的数组索引。
返回值:
被包装到的数组。
staticCesium.Ellipsoid.unpack(array, startingIndex, result)Ellipsoid
从已包装的数组中检索实例。
Name Type Default Description
array Array.<Number> 包装的数组。
startingIndex Number 0 optional 要解包的元素的起始索引。
result Ellipsoid optional 存储结果的对象。
返回值:
修改后的结果参数或新的Ellipsoid实例(如果没有提供)。
cartesianArrayToCartographicArray(cartesians, result)Array.<Cartographic>
将提供的笛卡尔坐标数组转换为地理坐标数组。
Name Type Description
cartesians Array.<Cartesian3> 笛卡尔坐标数组。
result Array.<Cartographic> optional 存储结果的对象。
返回值:
修改后的结果参数或新数组实例(如果没有提供)。
示例:
// 创建一个笛卡尔坐标数组,并确定其在WGS84椭球面上的地理坐标表示。
var 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)]
var cartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(positions);
cartesianToCartographic(cartesian, result)Cartographic
将提供的笛卡尔坐标转换为地理坐标表示形式。 在椭球的中心,笛卡尔坐标没有定义。
Name Type Description
cartesian Cartesian3 要转换为地理坐标表示的笛卡尔坐标位置。
result Cartographic optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则创建一个新的地理坐标实例,或者如果笛卡尔坐标位于椭球体的中心,则未定义。
示例:
// 创建一个笛卡尔坐标,并确定其在WGS84椭球面上的地理坐标表示。
var position = new Cesium.Cartesian3(17832.12, 83234.52, 952313.73);
var cartographicPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(position);
cartographicArrayToCartesianArray(cartographics, result)Array.<Cartesian3>
将提供的地理坐标数组转换为笛卡儿坐标数组。
Name Type Description
cartographics Array.<Cartographic> 地理坐标位置数组。
result Array.<Cartesian3> optional 存储结果的对象。
返回值:
修改后的结果参数或新数组实例(如果没有提供)。
示例:
// 转换一个地理坐标数组,并确定其在WGS84椭球面上的笛卡尔坐标表示法。
var 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)];
var cartesianPositions = Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions);
cartographicToCartesian(cartographic, result)Cartesian3
将提供的地理坐标转换为笛卡尔坐标表示法。
Name Type Description
cartographic Cartographic 地理坐标位置。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则创建一个新的Cartesian3实例。
示例:
// 创建一个Cartographic,并确定其在WGS84椭球面上的笛卡尔坐标表示法。
var position = new Cesium.Cartographic(Cesium.Math.toRadians(21), Cesium.Math.toRadians(78), 5000);
var cartesianPosition = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
clone(result)Ellipsoid
复制椭球体实例。
Name Type Description
result Ellipsoid optional 要将结果存储到其上的对象,如果要创建新实例,则为undefined。
返回值:
克隆的椭球体。
equals(right)Boolean
将此椭球体与提供的椭球体分量进行比较,如果二者相等,则返回true,否则返回false
Name Type Description
right Ellipsoid optional 另一个椭球体。
返回值:
如果它们相等,则为true;否则false
geocentricSurfaceNormal(cartesian, result)Cartesian3
计算从椭球中心指向给定的笛卡尔坐标位置的单位向量。
Name Type Description
cartesian Cartesian3 用来确定地心法线(geocentric normal)的笛卡尔坐标。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则创建一个新的Cartesian3实例。
geodeticSurfaceNormal(cartesian, result)Cartesian3
在给定的位置计算与椭球表面相切的平面的法线。
Name Type Description
cartesian Cartesian3 确定曲面法线的笛卡尔坐标位置。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则创建一个新的Cartesian3实例。
geodeticSurfaceNormalCartographic(cartographic, result)Cartesian3
在给定的位置计算与椭球表面相切的平面的法线。
Name Type Description
cartographic Cartographic 用来确定大地测量法线的地理坐标位置。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则创建一个新的Cartesian3实例。
getSurfaceNormalIntersectionWithZAxis(position, buffer, result)Cartesian3|undefined
计算表面法线(surface normal)与z轴的交点。
Name Type Default Description
position Cartesian3 位置。必须在椭球面上。
buffer Number 0.0 optional 在检查点是否在椭球内时,从椭球大小中减去的缓冲区。 在地球情况下,对于普通的地球基准(datums),不需要这个缓冲区,因为交点总是(相对地)非常靠近中心。 在WGS84基准中,交点在max z = +- 42841.311531382 (z轴的0.673%)处。 交点可能在椭球外,如果MajorAxis / AxisOfRotation的比例大于2的平方根。
result Cartesian3 optional 用于复制结果的笛卡儿坐标,或未定义以用于创建和返回新实例。
返回值:
交点,如果它在椭球内,否则undefined。
异常情况:
scaleToGeocentricSurface(cartesian, result)Cartesian3
沿地心表面法线缩放所提供的笛卡尔坐标位置,使其位于椭球表面。
Name Type Description
cartesian Cartesian3 缩放的笛卡尔坐标的位置。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则为一个新的Cartesian3实例。
scaleToGeodeticSurface(cartesian, result)Cartesian3
沿大地测量面法线缩放所提供的笛卡尔坐标位置,使其位于椭球面上。 如果位置在椭球体的中心,则此函数返回undefined。
Name Type Description
cartesian Cartesian3 要缩放的笛卡尔坐标的位置。
result Cartesian3 optional 存储结果的对象。
返回值:
修改后的结果参数,如果没有提供则为一个新的Cartesian3实例,如果位置位于中心,则为undefined。
toString()String
创建此椭球面的字符串表示格式'(radii.x, radii.y, radii.z)'。
返回值:
此椭球面的字符串表示格式'(radii.x, radii.y, radii.z)'。
transformPositionFromScaledSpace(position, result)Cartesian3
通过将其分量乘以Ellipsoid#radii的结果,从椭球体缩放空间(ellipsoid-scaled space)转换笛卡尔坐标的X、Y、Z位置。
Name Type Description
position Cartesian3 变换的位置。
result Cartesian3 optional 将结果复制到的位置,或未定义以创建和返回新实例的位置。
返回值:
在未缩放空间中表示的位置。返回的实例是作为结果参数传递的实例(如果它没有未定义),或者它的新实例。
transformPositionToScaledSpace(position, result)Cartesian3
通过将其分量乘以Ellipsoid#oneOverRadii的结果,将笛卡尔坐标的X、Y、Z位置转换为椭球尺度空间(ellipsoid-scaled space)。
Name Type Description
position Cartesian3 变换的位置。
result Cartesian3 optional 将结果复制到的位置,或未定义以创建和返回新实例。
返回值:
在比例空间(scaled space)中表示的位置。返回的实例是作为结果参数传递的实例(如果它没有未定义),或者它的新实例。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)