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

打印 上一主题 下一主题

主题 841|帖子 841|积分 2523

2023-01-11

1.坐标系

Cartesian3笛卡尔坐标,又叫世界坐标,是一个三维空间中的点 ,具有xyz,类似:(-1314910.6675027965, 5328726.846411945, 3238183.748823095),单位为米 原点在椭球中心
 
 Cartesian2是二维空间中的点,通常是屏幕坐标
  1. 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库也提供了函数进行计算:
  1.           // 弧度转换为经纬度
  2.           var lon = Cesium.Math.toDegrees(cartographic.longitude);  // 经度
  3.           var lat = Cesium.Math.toDegrees(cartographic.latitude);   // 纬度  
  4.           console.log(`经度:${lon},纬度:${lat}`);
复制代码
 
 
2.1.2 Cartesian3转经纬度(世界坐标/笛卡尔坐标 转经纬度)

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

 
 可以直接用Cartesian3创建一个弧度坐标。
  1.           var x = Cesium.Cartographic.fromCartesian(new Cesium.Cartesian3.fromDegrees(100,30,500))
  2.           console.log(`100,30,500对应的弧度:${x}`);
复制代码
 
 
 
2023-01-11 没更完,后面接着来
 
             
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表