Cesium 座標轉換

2021-10-20 19:35:19 字數 2455 閱讀 5666

參考:

幾個重要的座標物件:

1.世界座標

cartesian3:笛卡爾空間直角座標系

new cesium.cartesian3(x, y, z)

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

2.經緯度

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

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

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

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

3.弧度

cartographic

new cesium.cartographic(longitude, latitude, height)

這裡的引數也叫做,longitude,latitude,即經度和緯度。

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

角度轉弧度 π/180×角度 

弧度變角度 180/π×弧度 

幾種轉換

1. 經緯度轉換為世界座標

第一種方式:直接轉換:

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物件的方法。

2. 世界座標轉換為經緯度

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

3.弧度和經緯度

經緯度轉弧度:

cesium.cesiummath.toradians(degrees)

弧度轉經緯度:

cesium.cesiummath.todegrees(radians)

4. 螢幕座標和世界座標相互轉換

螢幕轉世界座標:

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)

function gcj02tobd09(lng, lat)

function wgs84togcj02(lng, lat)

function gcj02towgs84(lng, lat)

function out_of_china(lng, lat) {

return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);

Cesium 座標系轉換

cesium中常用的座標有兩種wgs84地理座標系和笛卡爾空間座標系 世界座標 我們平時常用的以經緯度來指明乙個地點就是用的wgs84座標,笛卡爾空間座標系常用來做一些空間位置變換如平移旋轉縮放等等。二者的聯絡如下圖,笛卡爾空間座標的原點就是橢球的中心.pick 螢幕座標 cartesian 世界座...

cesium當中的座標轉換

cesium當中有好幾種座標系,有如下幾種 模型座標系 世界座標系 觀察座標系 又稱相機座標系 檢視座標系 裁剪座標系 ndc 座標系 螢幕座標系 世界座標轉觀察座標 觀察座標轉裁剪座標 觀察座標轉ndc座標 透視除法 xyz分量分別除以w分量 ndc座標轉螢幕座標 var viewportmatr...

cesium公尺轉換經緯度 Cesium座標轉換

笛卡爾空間座標的原點就是橢球的中心。在實際應用中用的最多的操作就是 lng,lat,alt x,y,z 之間的相互轉換,cesiumjs為我們提供了這些轉換 var ellipsoid viewer.scene.globe.ellipsoid var coord wgs84 cesium.carto...