1.cesium的笛卡爾三維座標 new cesium.cartesian3(x,y,z)
2.經緯度座標 new cesium.cartographic(longitude,latitude,height)
經緯度除了特殊說明,一般都是弧度radians單位,也就是π。
弧度與角度的轉換方法:cesium.cartographic.todegree();cesium.cartogrhpic.fromdegree(),同樣cesium.math.todegree(radians)/toradians(degree)
3.經緯度與cartesian3座標之間
cesium.cartographic.fromcartesian(cartesian3,ellipsoid,resullt) 不同球體是不一樣的,這就是球體與投影
cesium.cartographic.fromdegrees(longitude,latitude,height,result) 這裡是不需要球體的
cesium.cartographic.tocartesian(cartographic, ellipsoid, result
)4.矩陣
martix4,4*4的矩陣 矩陣轉換,將模型的x轉至真實空間的x
最常用的方法cesium.transfrom.eastnorthuptofixedframe() 以乙個cartesian3點為中心,建成乙個martix4矩陣,轉換。
其實質就是下面這個線性幾何公式
從字面上意思很明確:座標轉換、旋轉、大小控制
#cartesian3
static members:
packedlength---將x,y,z放進array
unit_x/y/z---(1,0,0)/(0,1,0)/(0,0,1)
equals(right) → boolean
cesium中一些常用api
cesium.cartesian3.abs(cartesian, result) → cartesian3
cesium.cartesian3.add(left, right, result) → cartesian3
cesium.cartesian3.anglebetween(left, right) 返回兩個笛卡爾座標之間的角度,left/right 均為乙個cartesin3座標,除非特殊說明單位都是弧度
cesium.cartesian3.cross(left, right, result) → cartesian3
返回兩個向量的向量積
cesium.cartesian3.distance(left, right) → number
返回兩個座標的距離
cesium.cartesian3.fromdegrees(longitude, latitude, height, ellipsoid, result) → cartesian3
cesium.cartesian3.fromdegreesarray(coordinates, ellipsoid, result) → array.
>
cesium.cartesian3.fromelements(x, y, z, result) → cartesian3
cesium.cartesian3.multiplybyscalar(cartesian, scalar, result) → cartesian3 乘以向量後的結果
cesium.cartesian3.negate(cartesian, result) → cartesian3 方向取反
cesium.cartesian3.normalize(cartesian, result) —單位向量化
cesium.cartesian3.projectvector(a, b, result) → cartesian3
投影 5.cesium通過滑鼠事件獲取座標的方法
建立座標獲取事件:var handler = new cesium.screespaceeventhandler(canvas);
handler.serinputaction(function(movement),cesium.screespaceeventtype.左鍵點選/滑鼠移動等)
&獲取螢幕座標 movement.position 螢幕座標的原點是螢幕左上角,方向x向左正,y向下正
&世界座標(個人理解為 理論座標 )
viewer.scene.pickellipsoid(movement.position,ellipsoind,result) 點選時候,相機的視角線與橢球體相交處的cartesian3座標;
注意球體預設為wgs84,一般應設定為當前球體viewer.scene.globe.ellipsoid
獲取的即為視線與理論球體表面相交處的座標,也可以理解為高程為0,因為真實的地表一般都是高程大於0,所以也就是物體的深部
&場景座標(帶地形等緩衝的座標)
viewer.scene.pickposition(movement.position) 返回從深度緩衝區和視窗位置重建的笛卡爾位置,所以這裡是沒有球體引數的
&地表(地形)座標
var ray = viewer.camera.getpickray(movement.position) 獲取camera與點選點之間的視線射線
var position = viewer.scene.golbe.pick(ray,viewer.scene.) 獲取視線ray與golbe相交處的座標
注意:這裡是globe,則代表了主體為為ellipsoid載入地形高程後的,這樣才能區別理論座標,所獲取資料為考慮高程後的空間直角座標系
備註:globe翻譯過來是地球的意思,而ellipsoid為橢球體,在計算純球體理論的時候用的是後者,當載入地形之類實際實物後用的是前者
//獲取空間座標
positon為movement.position/endposition視滑鼠事件
type:1為理論座標 3為緩衝座標 4為地表座標
_getposition(position,type)
6.cesium的三種拾取方式
7.matrix4 4x4矩陣
笛卡爾三維座標 至 matrix4: cesium.transform.eastnorthuptofixedframe(cartesian3)
Cesium 座標轉換
參考 幾個重要的座標物件 1.世界座標 cartesian3 笛卡爾空間直角座標系 new cesium.cartesian3 x,y,z 可以看作,以橢球中心為原點的空間直角座標系中的乙個點的座標。2.經緯度 地理座標系,座標原點在橢球的質心。經度 參考橢球面上某點的大地子午面與本初子午面間的兩面...
cesium學習 cesium中的座標
一 座標展現形式 在cesium中,對於座標數值單位有三種 角度 弧度和座標值 1.角度 角度就是我們所熟悉的經緯度,對於地球的座標建立如下 圖中以本初子午線作為x和z的面,建立了乙個空間座標系。可知在緯度方向上,角1的範圍為 90 90,即南緯90 北緯90 角2的範圍是 180 180,即東經1...
Cesium 座標系轉換
cesium中常用的座標有兩種wgs84地理座標系和笛卡爾空間座標系 世界座標 我們平時常用的以經緯度來指明乙個地點就是用的wgs84座標,笛卡爾空間座標系常用來做一些空間位置變換如平移旋轉縮放等等。二者的聯絡如下圖,笛卡爾空間座標的原點就是橢球的中心.pick 螢幕座標 cartesian 世界座...