Cesium中的幾種座標和相互轉換

2021-08-10 00:27:34 字數 3244 閱讀 2537

cartesian3:笛卡爾空間直角座標系
new cesium.cartesian3(x, y, z)

可以看作,以橢球中心為原點的空間直角座標系中的乙個點的座標。

地理座標系,座標原點在橢球的質心。

經度:參考橢球面上某點的大地子午面與本初子午面間的兩面角。東正西負。

緯度 :參考橢球面上某點的法線與赤道平面的夾角。北正南負。

cesuim中沒有具體的經緯度物件,要得到經緯度首先需要計算為弧度,再進行轉換。

cartographic
new cesium.cartographic(longitude, latitude, height)
這裡的引數也叫做,longitude,latitude,即經度和緯度。

但是是用弧度表示的經緯度,經緯度其實就是角度,可以看上面的解釋。弧度即角度對應弧長是半徑的倍數。

角度轉弧度 π/180×角度

弧度變角度 180/π×弧度

第一種方式:直接轉換:

cesium.cartesian3.fromdegrees(longitude, latitude, height, ellipsoid, result)
longitude:經度

latitude:緯度

height:高度

ellipsoid:橢球體:

第二種方式:先轉換成弧度再轉換

var ellipsoid=viewer.scene

.globe

.ellipsoid

;var cartographic=cesium.cartographic

.fromdegrees(lng,lat,alt);

var cartesian3=ellipsoid.cartographictocartesian(cartographic);

以上方式是借助了ellipsoid物件的方法。

var ellipsoid=viewer.scene

.globe

.ellipsoid

;var cartesian3=new cesium.cartesian3(x,y,z);

var cartographic=ellipsoid.cartesiantocartographic(cartesian3);

var lat=cesium.math

.todegrees(cartograhphic.latitude);

var lng=cesium.math

.todegrees(cartograhpinc.longitude);

var alt=cartographic.height

;

同理,得到弧度還可以用

cartographic.fromcartesian
經緯度轉弧度:

cesium.cesiummath

.toradians(degrees)

弧度轉經緯度:

cesium.cesiummath

.todegrees(radians)

螢幕轉世界座標:

var pick1= new cesium.cartesian2(0,0);

var cartesian = viewer.scene

.globe

.pick(viewer.camera

.getpickray(pick1),viewer.scene);

注意這裡螢幕座標一定要在球上,否則生成出的cartesian物件是undefined

世界座標轉螢幕座標

cesium.scenetransforms

.wgs84towindowcoordinates(scene, cartesian3);

結果是cartesian2物件,取出x,y即為螢幕座標。

//定義一些常量

var x_pi = 3.14159265358979324 * 3000.0 / 180.0;

var pi = 3.1415926535897932384626;

var a = 6378245.0;

var ee = 0.00669342162296594323;

/** * @param bd_lon

* @param bd_lat

* @returns

*/function bd09togcj02(bd_lon, bd_lat)

/** * @param lng

* @param lat

* @returns

*/function gcj02tobd09(lng, lat)

/** * wgs84轉gcj02

* @param lng

* @param lat

* @returns

*/function wgs84togcj02(lng, lat)

else

}/**

* gcj02 轉換為 wgs84

* @param lng

* @param lat

* @returns

*/function gcj02towgs84(lng, lat)

else

}function transformlat(lng, lat)

function transformlng(lng, lat)

/** * 判斷是否在國內,不在國內則不做偏移

* @param lng

* @param lat

* @returns

*/function out_of_china(lng, lat)

cesium學習 cesium中的座標

一 座標展現形式 在cesium中,對於座標數值單位有三種 角度 弧度和座標值 1.角度 角度就是我們所熟悉的經緯度,對於地球的座標建立如下 圖中以本初子午線作為x和z的面,建立了乙個空間座標系。可知在緯度方向上,角1的範圍為 90 90,即南緯90 北緯90 角2的範圍是 180 180,即東經1...

Cesium空間座標系相互轉換

一 常用座標轉換 世界座標轉經緯度座標 var cartographic cesium.cartographic.fromcartesian cartesian 世界座標轉弧度 var longitude cesium.math.todegrees cartographic.longitude va...

Cesium中的座標系及轉換

在我們開始學習entity之前,我們首先需要先學習下cesium中的座標系,cesium中有多個座標系,在進行新增entity時經常會使用到。我們先來列舉下cesium中的座標系 wgs84經緯度座標系 沒有實際的物件 wgs84弧度座標系 cartographic 笛卡爾空間直角座標系 carte...