资源简介
c++ 伪距单点定位,Rinex文件读取数据解析,计算卫星在轨位置,计算测站坐标
代码片段和文件信息
#include
#include “CoorSystem.h“
#include
#define M_PI 3.1415926535898
//度转换为弧度函数
void DMS_RAD(double DMSdouble *Rad)
{
int DegMin;
double Sec;
Deg=(int)DMS;
Min=(int)((DMS-Deg)*100);
Sec=((DMS-Deg)*100-Min)*100;
*Rad=(Deg+Min/60.0+Sec/3600.0)/180.0*M_PI;
return;
}
//弧度转换为度的函数
void RAD_DMS(double Raddouble *DMS)
{
int DegMin;
double Sec;
double ARAM;
AR=Rad;
if (Rad<0)
AR=-Rad;
AR=AR+1.0e-10;
AR=AR*180.0/M_PI;
Deg=(int)AR;
AM=(AR-Deg)*60.0;
Min=(int)AM;
Sec=(AM-Min)*60;
*DMS=Deg+Min/100.0+Sec/10000.0;
if(Rad<0)
*DMS=-*DMS;
return;
}
/************************************************************************/
/* Function CartesianToGeodetic()
功能:由笛卡尔坐标转换为大地坐标
输入参数:所转换的大地坐标引用cg;
待转换出的笛卡尔坐标引用cc;
参考椭球的长半轴dSemiMajorAxis;
参考椭球的扁率dFlattening
*/
/************************************************************************/
void CartesianToGeodetic(CRDGEODETIC& cgconst CRDCARTESIAN& cc
double dSemiMajorAxis double dFlattening)
{
double R=sqrt(cc.x*cc.x+cc.y*cc.y+cc.z*cc.z);
double BB0sinBdeltaB=0.0;
double e2=dFlattening*(2-dFlattening)N;
cg.longitude=atan2(cc.ycc.x);
int i=1;
B0=B=atan2(cc.zsqrt(cc.x*cc.x+cc.y*cc.y));//计算纬度B迭代的初始值
do
{
B0=B;
N=dSemiMajorAxis/sqrt(1-e2*pow(sin(B0)2));
sinB=sin(B0);
B=atan2((cc.z+N*e2*sinB)sqrt(cc.x*cc.x+cc.y*cc.y));
deltaB=B-B0;
i++;
} while (i<10E+6||deltaB>1.0E-6);
cg.latitude=B;
cg.height=R*cos(atan2(cc.zsqrt(cc.x*cc.x+cc.y*cc.y)))/cos(B)-N;
}
/************************************************************************/
/* Function GeodeticToCartesian()
功能:由大地坐标转换为笛卡尔坐标
输入参数:所转换出的笛卡尔坐标引用cc;
待转换的大地坐标引用cg;
参考椭球的长半轴dSemiMajorAxis;
参考椭球的扁率dFlattening
*/
/************************************************************************/
void GeodeticToCartesian(CRDCARTESIAN& ccconst CRDGEODETIC& cg
double dSemiMajorAxis double dFlattening)
{
double e2=dFlattening*(2-dFlattening);
double N=dSemiMajorAxis/sqrt(1-e2*pow(sin(cg.latitude)2));
cc.x=(N+cg.height)*cos(cg.latitude)*cos(cg.longitude);
cc.y=(N+cg.height)*cos(cg.latitude)*sin(cg.longitude);
cc.z=(N*(1-e2)+cg.height)*sin(cg.latitude);
}
/************************************************************************/
/* Function CartesianToTopocentric()
功能:由笛卡尔坐标转换为站心地平坐标
输入参数:所转换出的站心地平坐标引用ct;
待转换的笛卡尔坐标引用cc;
站心的笛卡尔坐标ccCenter
参考椭球的长半轴dSemiMajorAxis;
参考椭球的扁率dFlattening
*/
/************************************************************************/
void CartesianToTopocentric(CRDTOPOCENTRIC& ctconst CRDCARTESIAN& cc
const CRDCARTESIAN& ccCenterdouble dSemiMajorAxisdouble dFlattening)
{
double deltaX=cc.x-ccCenter.x;
double deltaY=cc.y-ccCenter.y;
double deltaZ=cc.z-ccCenter.z;
CRDGEODETIC cg;
CartesianToGeodetic(cgccCenterdSemiMajorAxisdFlattening);
ct.northing=-si
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 98246 2009-12-08 12:11 GPS_SPP\bjfs2690.08n
文件 3651 2009-11-26 22:05 GPS_SPP\bjfs2690.08o
文件 4147 2009-11-27 15:46 GPS_SPP\CoorSystem.cpp
文件 3292 2009-11-28 13:27 GPS_SPP\CoorSystem.h
文件 11058 2009-11-30 22:05 GPS_SPP\Debug\CoorSystem.obj
文件 0 2009-11-30 22:05 GPS_SPP\Debug\CoorSystem.sbr
文件 5800960 2011-11-14 14:41 GPS_SPP\Debug\GPS_SPP.bsc
文件 176199 2011-11-14 14:41 GPS_SPP\Debug\GPS_SPP.exe
文件 311708 2011-11-14 14:41 GPS_SPP\Debug\GPS_SPP.ilk
文件 61531 2009-11-30 22:05 GPS_SPP\Debug\GPS_SPP.obj
文件 6883300 2009-11-30 22:05 GPS_SPP\Debug\GPS_SPP.pch
文件 549888 2011-11-14 14:41 GPS_SPP\Debug\GPS_SPP.pdb
文件 3032 2009-12-08 22:01 GPS_SPP\Debug\GPS_SPP.res
文件 0 2009-11-30 22:05 GPS_SPP\Debug\GPS_SPP.sbr
文件 113634 2009-12-09 12:45 GPS_SPP\Debug\GPS_SPPDlg.obj
文件 0 2009-12-09 12:45 GPS_SPP\Debug\GPS_SPPDlg.sbr
文件 0 2011-11-14 10:29 GPS_SPP\Debug\GPS导航电文文件
文件 4787 2009-11-30 22:05 GPS_SPP\Debug\Matrix.obj
文件 0 2009-11-30 22:05 GPS_SPP\Debug\Matrix.sbr
文件 71353 2011-11-14 14:41 GPS_SPP\Debug\PointPos.obj
文件 0 2011-11-14 14:41 GPS_SPP\Debug\PointPos.sbr
文件 71168 2009-12-13 15:15 GPS_SPP\Debug\PointPos1.obj
文件 0 2009-12-13 15:15 GPS_SPP\Debug\PointPos1.sbr
文件 119874 2009-12-08 14:19 GPS_SPP\Debug\RinexFiles.obj
文件 0 2009-12-08 14:19 GPS_SPP\Debug\RinexFiles.sbr
文件 9951 2009-12-08 18:21 GPS_SPP\Debug\SatPosCal.obj
文件 0 2009-12-08 18:21 GPS_SPP\Debug\SatPosCal.sbr
文件 105458 2009-11-30 22:05 GPS_SPP\Debug\StdAfx.obj
文件 1374920 2009-11-30 22:05 GPS_SPP\Debug\StdAfx.sbr
文件 8333 2009-11-30 22:05 GPS_SPP\Debug\TimeSystem.obj
............此处省略47个文件信息
评论
共有 条评论