• 大小: 923KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: 坐标转换  

资源简介

可以用文件的方式把xyz的坐标值转换为NEU方向

资源截图

代码片段和文件信息

/******************************************************                                       */
/************************************************************************/
#include
#include
#include
#include 


using namespace  std;

#define M_PI 3.1415926



//笛卡尔坐标系结构体
typedef struct tagCRDCARTESIAN
{
double x;
double y;
double z;
}CRDCARTESIAN;
typedef CRDCARTESIAN *PCRDCARTESIAN;

//大地坐标系结构体
typedef struct tagCRDGEODETIC
{
double longitude;
double latitude;
double height;
}CRDGEODETIC;

typedef CRDGEODETIC *PCRDGEODETIC;

//站心地平坐标(线坐标形式)结构体
typedef struct tagCRDTOPOCENTRIC
{
double northing;
double easting;
double upping;
}CRDTOPOCENTRIC;

typedef CRDTOPOCENTRIC *PCRDTOPOCENTRIC;

//站心地平坐标(极坐标形式)结构体
typedef struct tagCRDTOPOCENTRICPOLAR
{
double range;
double azimuth;
double elevation;
}CRDTOPOCENTRICPOLAR;

typedef CRDTOPOCENTRICPOLAR *PCRDTOPOCENTRICPOALR;






//度分秒转换为弧度函数(1.2345表示1°23‘45‘‘)
void DMS_RAD(double DMSdouble *Rad);

//弧度转换为度分秒
void RAD_DMS(double Raddouble *DMS);

//笛卡尔坐标系转换为大地坐标系
//pcc为笛卡尔坐标对象指针,pcg为大地坐标系结构体对象指针,dSemiMajorAxis为椭球长半轴,dFlattening为椭球扁率
bool CARTESIANTOGEODETIC(PCRDCARTESIAN pccPCRDGEODETIC pcgdouble dSemiMajorAxisdouble dFlattening);

//大地坐标系转换为笛卡尔坐标系
//pcg为大地坐标系结构体对象指针,pcc为笛卡尔坐标对象指针,dSemiMajorAxis为椭球长半轴,dFlattening为椭球扁率
bool GEODETICTOCARTESIAN(PCRDGEODETIC pcgPCRDCARTESIAN pccdouble dSemiMajorAxisdouble dFlattening);

//笛卡尔坐标系转换站心地平坐标系
//pcc指向待转换的笛卡尔坐标的指针,pccCenter指向站心的笛卡尔坐标的指针,pct指向所转换出的站心地平坐标的指针,
//dSemiMajorAxis为椭球长半轴,dFlattening为椭球扁率
bool CARTESIANTOTOPOCENTRIC(PCRDCARTESIAN pccPCRDCARTESIAN pccCenterPCRDTOPOCENTRIC pctdouble dSemiMajorAxisdouble dFlattening);

//站心地平坐标系转换为站心地平极坐标系
//pct指向待转换的站心地平坐标的指针pctp指向所转换出的站心地平极坐标的指针
bool TOPOCENTRICTOTOPOCENTRICPOLAR(PCRDTOPOCENTRIC pctPCRDTOPOCENTRICPOALR pctp);




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;
}

bool CARTESIANTOGEODETIC(PCRDCARTESIAN pccPCRDGEODETIC pcgdouble dSemiMajorAxisdouble dFlattening)
{
double B0RN;
double B_L_;
double X=pcc->x;
double Y=pcc->y;
double Z=pcc->z;

R=sqrt(X*X+Y*Y);
B0=atan2(ZR);

while (1)
{
N=dSemiMajorAxis/sqrt(1.0-dFlattening*(2-dFlattening)*sin(B0)*sin(B0));
B_=atan2(Z+N*dFlattening*(2-dFlattening)*sin(B0)R);
if(fabs(B_-B0)<1.0e-10)
break;
B0=B_;
}
L_=atan2(YX);
pcg->height=R/cos(B_)-N;

RAD_DMS(B_&pcg->latitude);
RAD_DMS(L_&pcg->longitude);
return true;
}

bo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5944  2011-03-21 09:14  批量处理xyz转换到neu\11.cpp

     文件       4614  2011-03-20 21:02  批量处理xyz转换到neu\11.dsp

     文件        527  2011-03-20 20:59  批量处理xyz转换到neu\11.dsw

     文件      41984  2011-03-21 09:40  批量处理xyz转换到neu\11.ncb

     文件      48640  2011-03-21 09:40  批量处理xyz转换到neu\11.opt

     文件        238  2011-03-21 09:39  批量处理xyz转换到neu\11.plg

     文件      10540  2011-03-21 09:14  批量处理xyz转换到neu\result.txt

     文件      11232  2011-03-21 09:12  批量处理xyz转换到neu\新建 文本文档.txt

     文件     557099  2011-03-21 09:14  批量处理xyz转换到neu\Debug\11.exe

     文件     828040  2011-03-21 09:14  批量处理xyz转换到neu\Debug\11.ilk

     文件     300210  2011-03-21 09:14  批量处理xyz转换到neu\Debug\11.obj

     文件    2001576  2011-03-20 21:15  批量处理xyz转换到neu\Debug\11.pch

     文件    1131520  2011-03-21 09:14  批量处理xyz转换到neu\Debug\11.pdb

     文件      82944  2011-03-21 09:39  批量处理xyz转换到neu\Debug\vc60.idb

     文件     110592  2011-03-21 09:14  批量处理xyz转换到neu\Debug\vc60.pdb

     目录          0  2011-03-22 10:22  批量处理xyz转换到neu\Debug

     目录          0  2011-03-22 10:22  批量处理xyz转换到neu

----------- ---------  ---------- -----  ----

              5135700                    17


评论

共有 条评论