cesium學習 cesium中的座標

2022-05-07 07:51:09 字數 2288 閱讀 7957

一、座標展現形式

在cesium中,對於座標數值單位有三種:角度、弧度和座標值

1.角度

角度就是我們所熟悉的經緯度,對於地球的座標建立如下:

圖中以本初子午線作為x和z的面,建立了乙個空間座標系。可知在緯度方向上,角1的範圍為-90~90,即南緯90°~北緯90°,角2的範圍是-180~180,即東經180°~西經180°。

2.弧度

角度還可以用弧度表示,初中數學知識,180°=π。在cesium中很多函式的引數都是使用弧度作為單位。

3.座標值

這個座標值就如上圖中所建立的座標系,但是不同的是數值是我們所說的座標系的資料,例如cartesian3(笛卡爾座標系)物件中的x、y、z所代表的數值。那麼這個物件所代表的值是什麼樣的範圍呢?我們使用可以將地圖的0,0點作為經緯度轉換為cartesian3物件,並將其輸出例如:

1

var point = cesium.cartesian3.fromdegrees(0,0,0);

2 console.log(point);

結果為(6378137, 0, 0),為什麼x座標會是6378137呢?這是因為cartesian3在建立的時候,是需要設定橢球體,也就是地球的。我們上面使用的方法的api如下:

第三個引數就是設定橢球體。預設是ellipsoid.wgs84,我們把這個橢球體輸出得到的是:(6378137, 6378137, 6356752.314245179),可以看到這個x座標的值就是我們(0,0)點最後轉換後的x座標的值,構建一下座標系可能會更清楚些:

這樣的話,如果經緯度座標是(90,0)轉換成笛卡爾座標就是(0,6378137,0),經緯度(0,-90)就是(0,0,-6356752.314245179)。另外可以將笛卡爾座標的單位理解成公尺,圓心就是橢球的中心。這樣當我們想要對cesium中的物體進行公尺級別的控制使用笛卡爾座標系的表示就很好控制。

二、三種座標的換算方式:

1.角度和弧度的轉換

在cesium中math物件中的函式可以用來完成角度和弧度之間的換算。

角度轉為弧度:弧度值 = cesium.math.toradians(角度值);

弧度轉為角度:角度值 = cesium.math.todegrees(弧度值);

這兩個方法是單純的將二者進行換算,另外cesium中很多的物件中是有專用的換算函式的。

2.角度、弧度與cartesian3的轉換

角度轉換為cartesian3:

cesium.cartesian3.fromdegrees

cesium.cartesian3.fromdegreesarray

弧度轉換為cartesian3:

cesium.cartesian3.fromradians

cesium.cartesian3.fromradiansarray

三、高度呢

這個時候我們可能會問cartesian3可以通過控制x,y,z的數值來控制高度,那麼經緯度和弧度呢?

此時cartographic物件就登場了,看下這個物件初始化的三個引數:

用弧度表示的經緯度,以及以公尺為單位的高度。此時我們就需要加入如下的轉化:

弧度轉為cartographic:

cesium.cartographic.fromradians

經緯度轉為cartographic:

cesium.cartographic.fromdegrees

cartographic轉為cartesian3:

cesium.cartographic.tocartesian

cartesian3轉為cartographic:

cesium.cartographic.fromcartesian

至此,cesium中整個的座標轉化已經基本包括,cartesian2和cartesian4因為沒有用過,暫時沒有加進來。下面我繪製座標轉換圖來表示:

第二週技術文件完成

cesium學習記錄

可繫結事件 static constant cesium.screenspaceeventtype.left click 表示滑鼠左鍵單擊事件。static constant cesium.screenspaceeventtype.left double click 表示滑鼠左鍵雙擊事件。stati...

Cesium 學習筆記

1,和fill屬性不太一樣,outline沒有對應的材質配置,而是用兩個獨立的屬性outlinecolor和outlinewidth。注意outlinewidth屬性僅僅在非windows系統上有效,比如android,ios,linux,和os x。windows系統上邊線寬度永遠為1。主要是因為...

Cesium 學習筆記

1,預設使用 bing 衛星圖層 2,在cesium中,homebutton的預設跳轉位置是美國,那麼在開發中我們如何更改這個預設跳轉位置呢,這就要更改一下源 了 camera.default view rectangle rectangle.fromdegrees 89.5,20.4,110.4,...