常用导航坐标系 及 转换关系 (理论+程序) 您所在的位置:网站首页 红米设置wifi密码在哪里看 常用导航坐标系 及 转换关系 (理论+程序)

常用导航坐标系 及 转换关系 (理论+程序)

2024-06-17 15:16| 来源: 网络整理| 查看: 265

3)地理坐标系 (Geographic Coordinate System):

是使用三维球面来定义地球表面位置,以实现通过 经纬度 对地球表面点位引用的坐标系。

一个地理坐标系包括 角度测量单位、本初子午线和参考椭球体三部分。在球面系统中,水平线是等

纬度线或纬线。垂直线是等经度线或经线。地理坐标系依据其所选用的本初子午线、参考椭球的不

同而略有区别。地理坐标系可以确定地球上任何一点的位置。首先将地球抽象成一个规则的逼近原

始自然地球表面的椭球体,称为参考椭球体,然后在参考椭球体上定义一系列的经线和纬线构成经

纬网,从而达到通过经纬度来描述地表点位的目的。需要说明的是经纬地理坐标系不是平面坐标系,

因为度不是标准的长度单位,不可用其直接量测面积长度。

地理坐标系 与 地心地固系(e 系)之间的转换关系如下:

程序如下:

Eigen::MatrixXd llh2ecef(Eigen::MatrixXd data) // transform the llh to ecef { Eigen::MatrixXd ecef; // the ecef for output ecef.resize(3, 1); double a = 6378137.0; double b = 6356752.314; double n, Rx, Ry, Rz; double lon = (double)data(0) * 3.1415926 / 180.0; // lon to radis double lat = (double)data(1) * 3.1415926 / 180.0; // lat to radis double alt = (double)data(2); // altitude n = a * a / sqrt(a * a * cos(lat) * cos(lat) + b * b * sin(lat) * sin(lat)); Rx = (n + alt) * cos(lat) * cos(lon); Ry = (n + alt) * cos(lat) * sin(lon); Rz = (b * b / (a * a) * n + alt) * sin(lat); ecef(0) = Rx; // return value in ecef ecef(1) = Ry; // return value in ecef ecef(2) = Rz; // return value in ecef return ecef; /**************for test purpose************************* Eigen::MatrixXd llh; llh.resize(3, 1); Eigen::MatrixXd ecef; ecef.resize(3, 1); llh(0) = 114.1772621294604; llh(1) = 22.29842880200087; llh(2) = 58; ecef = llh2ecef(llh); cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有