麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - Transforms 中文文档

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

Transforms API 调用方法

包含将位置转换为各种参考系的函数。

内置方法

staticCesium.Transforms.computeFixedToIcrfMatrix(date, result)Matrix3
计算一个旋转矩阵,在给定时间将一个点或向量从地球固定坐标系(Earth-Fixed frame)轴(ITRF)转换到国际天文参考坐标系 (International Celestial Reference Frame )(GCRF/ICRF)惯性坐标系轴。 如果执行转换所需的数据尚未加载,则此函数可能返回undefined。
Name Type Description
date JulianDate 计算旋转矩阵的时间。
result Matrix3 optional 存储结果的对象。如果未指定此参数,则创建并返回一个新实例。
返回值:
旋转矩阵,或undefined(如果完成转换所需的数据尚未加载)。
示例:
// 将点从ICRF轴转换为固定轴。
var now = Cesium.JulianDate.now();
var pointInFixed = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var fixedToIcrf = Cesium.Transforms.computeIcrfToFixedMatrix(now);
var pointInInertial = new Cesium.Cartesian3();
if (Cesium.defined(fixedToIcrf)) {
    pointInInertial = Cesium.Matrix3.multiplyByVector(fixedToIcrf, pointInFixed, pointInInertial);
}
参考:
staticCesium.Transforms.computeIcrfToFixedMatrix(date, result)Matrix3
计算一个旋转矩阵,在给定时间将一个点或向量从国际天文参考坐标系(International Celestial Reference Frame )(GCRF/ICRF) 惯性坐标系轴转换到地球固定坐标系(Earth-Fixed frame)轴(ITRF)。 如果执行转换所需的数据尚未加载,则此函数可能返回undefined。
Name Type Description
date JulianDate 计算旋转矩阵的时间。
result Matrix3 optional 存储结果的对象。如果未指定此参数,则创建并返回一个新实例。
返回值:
旋转矩阵,或undefined(如果完成转换所需的数据尚未加载)。
示例:
scene.postUpdate.addEventListener(function(scene, time) {
  // View in ICRF.
  var icrfToFixed = Cesium.Transforms.computeIcrfToFixedMatrix(time);
  if (Cesium.defined(icrfToFixed)) {
    var offset = Cesium.Cartesian3.clone(camera.position);
    var transform = Cesium.Matrix4.fromRotationTranslation(icrfToFixed);
    camera.lookAtTransform(transform, offset);
  }
});
参考:
staticCesium.Transforms.computeTemeToPseudoFixedMatrix(date, result)Matrix3
计算一个旋转矩阵,在给定的时间将一个点或向量从True Equator Mean Equinox (TEME)轴转换为伪固定(pseudo-fixed)轴。 该方法将UT1时间标准相等于UTC。
Name Type Description
date JulianDate 计算旋转矩阵的时间。
result Matrix3 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix3实例(如果没有提供)。
示例:
// 将视图设置为惯性系。
scene.postUpdate.addEventListener(function(scene, time) {
   var now = Cesium.JulianDate.now();
   var offset = Cesium.Matrix4.multiplyByPoint(camera.transform, camera.position, new Cesium.Cartesian3());
   var transform = Cesium.Matrix4.fromRotationTranslation(Cesium.Transforms.computeTemeToPseudoFixedMatrix(now));
   var inverseTransform = Cesium.Matrix4.inverseTransformation(transform, new Cesium.Matrix4());
   Cesium.Matrix4.multiplyByPoint(inverseTransform, offset, offset);
   camera.lookAtTransform(transform, offset);
});
staticCesium.Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, result)Matrix4
从以给定原点为中心的东北向上轴的坐标系到给定椭球体的固定坐标系计算4x4变换矩阵。 本地轴定义为:
  • x轴指向本地东向。
  • y轴指向本地北向。
  • z轴指向通过该位置的椭球面法线方向。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix4实例(如果没有提供)。
示例:
// Get the transform from local east-north-up at cartographic (0.0, 0.0) to Earth's fixed frame.
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var transform = Cesium.Transforms.eastNorthUpToFixedFrame(center);
staticCesium.Transforms.fixedFrameToHeadingPitchRoll(transform, ellipsoid, fixedFrameTransform, result)HeadingPitchRoll
从一个特定参考系的转换计算 heading-pitch-roll 角。 偏航(heading)是本地北方向的旋转,其正角向东增加。 俯仰(pitch)是从本地东北方平面旋转过来的。 正俯仰(pitch)角在平面之上。负俯仰角在平面以下。 翻滚(roll)是绕本地东轴的第一次旋转。
Name Type Default Description
transform Matrix4 转换。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在变换中使用固定坐标系的椭球体。
fixedFrameTransform Transforms~LocalFrameToFixedFrame Transforms.eastNorthUpToFixedFrame optional 从一个参考坐标系到所提供的椭球体的固定参考坐标系的4x4变换矩阵
result HeadingPitchRoll optional 存储结果的对象。
返回值:
修改后的结果参数或新的HeadingPitchRoll实例(如果没有提供)。
staticCesium.Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)Quaternion
从参考系计算四元数,轴从以给定原点为中心的 heading-pitch-roll 角计算。偏 航(heading)是本地北方向的旋转,其正角向东增加。 俯仰(pitch)是从本地东北方平面旋转过来的。 正俯仰(pitch)角在平面之上。负俯仰角在平面以下。 翻滚(roll)是绕本地东轴的第一次旋转。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
headingPitchRoll HeadingPitchRoll 偏航,俯仰和翻滚。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在变换中使用固定坐标系的椭球体。
fixedFrameTransform Transforms~LocalFrameToFixedFrame Transforms.eastNorthUpToFixedFrame optional 从一个参考坐标系到所提供的椭球体的固定参考坐标系的4x4变换矩阵
result Quaternion optional 存储结果的对象。
返回值:
修改后的结果参数或新的Quaternion实例(如果没有提供)。
示例:
// 在地图上(0.0,0.0)从当地的heading-pitch-roll a到地固系(Earth's fixed frame)获得四元数。
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -Cesium.Math.PI_OVER_TWO;
var pitch = Cesium.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new HeadingPitchRoll(heading, pitch, roll);
var quaternion = Cesium.Transforms.headingPitchRollQuaternion(center, hpr);
staticCesium.Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)Matrix4
从以给定原点为中心的 heading-pitch-roll 角到给定椭球体的固定参考系,用坐标轴从坐标系中计算4x4变换矩阵。 偏航(heading)是本地北方向的旋转,其正角向东增加。 俯仰(pitch)是从本地东北方平面旋转过来的。 正俯仰(pitch)角在平面之上。负俯仰角在平面以下。 翻滚(roll)是绕本地东轴的第一次旋转。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
headingPitchRoll HeadingPitchRoll 偏航,俯仰和翻滚。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
fixedFrameTransform Transforms~LocalFrameToFixedFrame Transforms.eastNorthUpToFixedFrame optional 从一个参考坐标系到所提供的椭球体的固定参考坐标系的4x4变换矩阵
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix4实例(如果没有提供)。
示例:
// 获取从地图(0.0,0.0)的本地 heading-pitch-roll 到地固系的转换。
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var heading = -Cesium.Math.PI_OVER_TWO;
var pitch = Cesium.Math.PI_OVER_FOUR;
var roll = 0.0;
var hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
var transform = Cesium.Transforms.headingPitchRollToFixedFrame(center, hpr);
staticCesium.Transforms.localFrameToFixedFrameGenerator(firstAxis, secondAxis)localFrameToFixedFrameGenerator~resultat
生成一个函数,该函数计算从以提供的原点为中心的参考坐标系到提供的椭球固定参考坐标系的4x4变换矩阵。
Name Type Description
firstAxis String 本地参考系firstAxis的名称。必须是'east', 'north', 'up', 'west', 'south' 或 'down'。
secondAxis String 本地参考系secondAxis的名称。必须是'east', 'north', 'up', 'west', 'south' 或 'down'。
返回值:
该函数将从一个参考系与firstAxis和secondAxis符合的参数计算一个4x4变换矩阵。
staticCesium.Transforms.northEastDownToFixedFrame(origin, ellipsoid, result)Matrix4
从以提供的原点为中心的东北向下轴的坐标系到提供的椭球固定坐标系计算4x4变换矩阵。 本地轴定义为:
  • x轴指向本地北方向。
  • y轴指向本地东方向。
  • z轴与通过该位置的椭球面法线方向相反。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix4实例(如果没有提供)。
示例:
// 从当地东北向下方向的地图(0.0,0.0)转换到地固系。
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var transform = Cesium.Transforms.northEastDownToFixedFrame(center);
staticCesium.Transforms.northUpEastToFixedFrame(origin, ellipsoid, result)Matrix4
从以提供的原点为中心的东上北向的坐标轴的参考坐标系到提供的椭球体的固定参考坐标系计算4x4变换矩阵。 本地轴定义为:
  • x轴指向本地北方向。
  • y轴指向通过该位置的椭球面法线方向。
  • Tz轴指向本地东方向。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix4实例(如果没有提供)。
示例:
// 在地图(0.0,0.0)获取从当地north-up-east到地固系(Earth's fixed frame)的变换。
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var transform = Cesium.Transforms.northUpEastToFixedFrame(center);
staticCesium.Transforms.northWestUpToFixedFrame(origin, ellipsoid, result)Matrix4
从以给定原点为中心的西北向上的坐标系到给定椭球体的固定坐标系计算4x4变换矩阵。 本地轴定义为:
  • x轴指向本地北方向。
  • y轴指向本地西方向。
  • z/code>轴指向通过该位置的椭球面法线方向。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数或新的Matrix4实例(如果没有提供)。
示例:
// 在地图(0.0,0.0)获取从当地西北向上到地固系(Earth's fixed frame)的变换。
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var transform = Cesium.Transforms.northWestUpToFixedFrame(center);
staticCesium.Transforms.pointToWindowCoordinates(modelViewProjectionMatrix, viewportTransformation, point, result)Cartesian2
将一个点从模型坐标转换为窗口坐标。
Name Type Description
modelViewProjectionMatrix Matrix4 4x4模型-视图-投影矩阵。
viewportTransformation Matrix4 4x4视口转换。
point Cartesian3 转换的点。
result Cartesian2 optional 存储结果的对象。
返回值:
修改后的结果参数,或新的Cartesian2实例(如果没有提供)。
staticCesium.Transforms.preloadIcrfFixed(timeInterval)Promise
在给定的时间间隔内,按任意方向预先加载在ICRF和固定(Fixed)轴之间转换所需的数据。 此函数返回一个约定,当解析后,该约定指示预加载已完成。
Name Type Description
timeInterval TimeInterval 预加载时间间隔。
返回值:
一个约定,当解析完时,表明预加载已经完成,并且固定轴和ICRF轴之间的转换评估将不再返回未定义的时间间隔内。
示例:
var interval = new Cesium.TimeInterval(...);
when(Cesium.Transforms.preloadIcrfFixed(interval), function() {
    // the data is now loaded
});
参考:

类型定义

LocalFrameToFixedFrame(origin, ellipsoid, result)Matrix4
计算从以提供的原点为中心的参考坐标系到提供的椭球固定参考坐标系的4x4变换矩阵。
Name Type Default Description
origin Cartesian3 本地参考系的中心点。
ellipsoid Ellipsoid Ellipsoid.WGS84 optional 在转换中使用固定坐标系的椭球体。
result Matrix4 optional 存储结果的对象。
返回值:
修改后的结果参数,或新的Matrix4实例(如果没有提供)。

其他API

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

相关阅读

麻辣GIS-Sailor

作者:

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

声明

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

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

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

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