cesium獲取某個位置垂直於當前地表的垂直座標系

我們可以通過Cesium.Transforms對象來獲取到相關的方法:

Cesium.Transforms.eastNorthUpToFixedFrame

常用的有Cesium.Transforms.eastNorthUpToFixedFrame這個方法,這個方法支持通過傳入一箇中心點,然後獲取到中心點的正東正北,和地表法線的方向:
x軸指向當前點的東方向。
y軸指向當前點的北方向。
z軸在橢圓體的方向軸指向表面法線穿過的位置。

例子:

//獲取到經緯度爲 0 0的地點的 局部座標系
var center = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var transform = Cesium.Transforms.eastNorthUpToFixedFrame(center);

和eastNorthUpToFixedFrame方法相匹配的還有相應的:
northEastDownToFixedFrame
northUpEastToFixedFrame
northWestUpToFixedFrame

Cesium.Transforms.northEastDownToFixedFrame

和eastNorthUpToFixedFrame用法相同,返回的矩陣的軸向略有不同:
x軸指向當地的北方
y軸指向當前地點的東方
z軸指向當前地點地表法線穿過的方向,也就是垂直於地表

Cesium.Transforms.northUpEastToFixedFrame

和eastNorthUpToFixedFrame用法相同,返回的矩陣的軸向略有不同:
x軸指向北方
y軸垂直於地表
z軸指向於東方

Cesium.Transforms.northWestUpToFixedFrame

和eastNorthUpToFixedFrame用法相同,返回的矩陣的軸向略有不同:
x軸指向北方
y軸指向西方
z軸垂直於地表

除了前面獲取某個位置的局部座標系矩陣,我們還可以獲取某個地表位置的局部旋轉修改成全局設置的方式。

Cesium.Transforms.fixedFrameToHeadingPitchRoll

fixedFrameToHeadingPitchRoll方法可以根據特定參考系中的變換計算航向俯仰角滾動角。
fixedFrameToHeadingPitchRoll支持四個值:transform,ellipsoid,fixedFrameTransform,result
transform-需要變換的四維矩陣
ellipsoid-當前使用的座標系,可選,默認值:Ellipsoid.WGS84
fixedFrameTransform - 當前使用全局轉局部的方式,也是前面提供的四種,默認Transforms.eastNorthUpToFixedFrame
result - 可選,如果設置,將返回的HeadingPitchRoll值放置在此對象內。

Cesium.Transforms.headingPitchRollQuaternion

可以根據根據位置和設置的HeadingPitchRoll的值獲取到在當前座標系中的四元數
例子:

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);

Cesium.Transforms.headingPitchRollToFixedFrame

可以根據根據位置和設置的HeadingPitchRoll的值獲取到在當前座標系中的四維矩陣
例子:

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章