Cesium 坐標系轉換


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

      

Pick----屏幕坐標   Cartesian----世界坐標  cartographic-----地理坐標(弧度)
Point----經緯度坐標
1.屏幕坐標轉世界坐標
var pick= new Cesium.Cartesian2(window.innerWidth,window.innerHeight);
var cartesian = scene.globe.pick(viewer.camera.getPickRay(pick), scene);

注:一共是兩步

(在2D下上述方法不適用,改成:

 

var pick= new Cesium.Cartesian2(0,0);
var cartesian = viewer.camera.pickEllipsoid(pick, viewer.scene.globe.ellipsoid);

 

 

)

2.世界坐標轉地理坐標(弧度)
var cartographic = scene.globe.ellipsoid.cartesianToCartographic(cartesian);

var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
3.世界坐標轉屏幕坐標
var pick = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, cartesian);
4.地理坐標(弧度)轉經緯度坐標
var point=[ cartographic.longitude / Math.PI * 180, cartographic.latitude / Math.PI * 180];
5.地理坐標(弧度)轉世界坐標
var  cartesian = scene.globe.ellipsoid. cartographicTo Cartesian (cartographic);
6.經緯度坐標轉地理坐標(弧度)
var cartographic = Cesium.Cartographic.fromDegree(point);
7.經緯度坐標轉世界坐標
var  cartesian  =  Cesium. Cartesian 3.fromDegree(point);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM