⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coordtrans.h

📁 gps 卫星位置的计算
💻 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 + -