首页 > 其他分享 >Cesium中各种坐标以及相互转换(七)

Cesium中各种坐标以及相互转换(七)

时间:2023-01-11 16:12:41浏览次数:41  
标签:转换 经纬度 cartographic Cartesian3 弧度 坐标 Cesium

2023-01-11

1.坐标系

Cartesian3 笛卡尔坐标,又叫世界坐标,是一个三维空间中的点 ,具有xyz,类似:(-1314910.6675027965, 5328726.846411945, 3238183.748823095),单位为米

 原点在椭球中心

 

  Cartesian2 是二维空间中的点,通常是屏幕坐标
console.log(`鼠标点击位置为:${click.position}`);
 鼠标点击位置为:(372.79998779296875, 213.7999997138977) 屏幕左上角为原点,向右为x正方向,向下为y正方向     cartographic  和Cartesian3一样是三维空间中的点,但是单位是弧度,通常也叫椭球坐标 当世界坐标为:(-1315009.0349616667, 5329125.484381694, 3238427.62747913), 此时对应的cartographic为:(1.8127222052449903, 0.5359692831389684, 492.5617098962376) 第三个参数是海拔,单位为米。     经纬度 Cesuim中没有具体的经纬度对象,要得到经纬度首先需要计算为弧度,再进行转换。    

2.坐标转换

 2.1 转换为经纬度

其实在实际应用中最常用的就是经纬度,我们先将如何转换为经纬度

2.1.1 cartographic 转经纬度(弧度转经纬度)

这是最简单的,弧度和经纬度是可以直接按照数学公式计算的。

 

 Cesium的Math库也提供了函数进行计算:

          // 弧度转换为经纬度
          var lon = Cesium.Math.toDegrees(cartographic.longitude);  // 经度
          var lat = Cesium.Math.toDegrees(cartographic.latitude);   // 纬度  
          console.log(`经度:${lon},纬度:${lat}`);

 

 

2.1.2 Cartesian3转经纬度(世界坐标/笛卡尔坐标 转经纬度)

由于已经知道如果有弧度的话就可以计算得到经纬度,所以问题转换为如何将世界坐标转换为椭球坐标。

找到了如下方法

 

 可以直接用Cartesian3创建一个弧度坐标。

          var x = Cesium.Cartographic.fromCartesian(new Cesium.Cartesian3.fromDegrees(100,30,500))
          console.log(`100,30,500对应的弧度:${x}`);

 

 

 

2023-01-11 没更完,后面接着来

 

                         

标签:转换,经纬度,cartographic,Cartesian3,弧度,坐标,Cesium
From: https://www.cnblogs.com/LJXXXX/p/17043938.html

相关文章