📄 coordtrans.h
字号:
#ifndef coordtrans_h
#define coordtrans_h
#define EPSILON 1.0e-12
//#define PI 3.1415926535897932384626
#define WGSF 1/298.257223563
#define WGSe2 WGSF*(2-WGSF)
#define WGSa 6378137.0000000000
#define BJ54F 1/298.3
#define BJ54e2 BJ54F*(2-BJ54F)
#define BJ54a 6378245.0000000000
#define XI80F 1/298.257
#define XI80e2 XI80F*(2-XI80F)
#define XI80a 6378140.0000000000
#define PZ90F 1/298.257
#define PZ90e2 PZ90F*(2-PZ90F)
#define PZ90a 6378136.0000000000
typedef struct COORDINATECARTESIAN
{
double dX;
double dY;
double dZ;
} COORDINATECARTESIAN;
typedef struct COORDINATEGEODETIC
{
double dLatitude;
double dLongtitude;
double dHeight;
} COORDINATEGEODETIC;
typedef struct COORDINATEPLANE
{
double dX;
double dY;
} COORDINATEPLANE;
struct COMMANCOORD
{
double x1[4],x2[4];
double y1[4],y2[4];
double z1[4],z2[4];
double B1[4],B2[4];
double L1[4],L2[4];
double H1[4],H2[4];
};
struct SEVENPARAMETER
{
double dx;
double dy;
double dz;
double m;
double ex;
double ey;
double ez;
};
struct NINEPARAMETER
{
double dx;
double dy;
double dz;
double m;
double ex;
double ey;
double ez;
double deltaa;
double deltaalpha;
};
class CCoordTrans
{
public:
CCoordTrans();
~CCoordTrans();
///////////////////////////////////////////////////////////////
void BJtoPLANE(COORDINATEGEODETIC geodetic,int projection,/*double Ls,*/ COORDINATEPLANE* plane,double *MiddleOfLat);
// void WGStoPLANE(COORDINATEGEODETIC geodetic,int projection, COORDINATEPLANE* plane,double *MiddleOfLat);
void WGStoBJ54(COORDINATECARTESIAN cartesian2, COORDINATECARTESIAN* cartesian1);
void angletoarc(int a,int b,double c,double *arc);
void XItoPLANE(COORDINATEGEODETIC geodetic,int projection, COORDINATEPLANE* plane,double *MiddleOfLat);
private:
//Attribute
public:
void ninetrans(COMMANCOORD coord,NINEPARAMETER *np);
void WGSTOPZ(COORDINATEGEODETIC wgdt,COORDINATECARTESIAN *wcar,COORDINATECARTESIAN *pcar,COORDINATEGEODETIC *pgdt);
void PZ90toWGS(COORDINATECARTESIAN cartesian2, COORDINATECARTESIAN* cartesian1);
void arctoangle(double arc,int *a,int *b,double *c);
void PLANEtoBJ(COORDINATEPLANE plane,double MiddleOfLat,COORDINATEGEODETIC *geodetic);
void seventrans(COMMANCOORD coord,SEVENPARAMETER *sp);
void WGSTOPLANE(COORDINATECARTESIAN cartesian,COORDINATEGEODETIC *geodetic,COORDINATEPLANE* plane ,int *MiddleOfLat,int projection);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -