coordinate.h

来自「读取GPS的Rinex观测文件」· C头文件 代码 · 共 72 行

H
72
字号
#ifndef COORDINATE_H
#define COORDINATE_H

#include <math.h>
#include "stdio.h"
#include <iostream.h>
const double PI=3.1415926535897932;
//WGS-84椭球体参数
const double a=6378137.0;//长半轴
const double flattening=1/298.257223563;//扁率




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

typedef struct CRDGEODETIC 
{
	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 *PCRDTOPOCENTRICPOLAR;



void CartesianToGeodetic (PCRDGEODETIC pcg, PCRDCARTESIAN pcc,double dSemiMajorAxis, double dFlattening);//由笛卡尔坐标转换为大地坐标
//pcg:指向所转换出的大地坐标的指针
//pcc:指向待转换的笛卡尔坐标的指针
//dSemiMajorAxis:参考椭球的长半轴
//dFlattening:参考椭球的扁率

void GeodeticToCartesian (PCRDCARTESIAN pcc, PCRDGEODETIC pcg,double dSemiMajorAxis, double dFlattening);//由大地坐标转换为笛卡尔坐标
//pcc:指向所转换出的笛卡尔坐标的指针
//pcg:指向待转换的大地坐标的指针
//dSemiMajorAxis:参考椭球的长半轴
//dFlattening:参考椭球的扁率
void CartesianToTopocentric (PCRDTOPOCENTRIC pct,PCRDCARTESIAN pcc,PCRDCARTESIAN pccCenter,double dSemiMajorAxis,double dFlattening);
//由笛卡尔坐标转换为站心地平坐标

//pct:指向所转换出的站心地平坐标的指针
//pcc:指向待转换的笛卡尔坐标的指针
//pccCenter:指向站心的笛卡尔坐标的指针
//dSemiMajorAxis:参考椭球的长半轴
//dFlattening:参考椭球的扁率

void TopocentricToTopocentricPolar (PCRDTOPOCENTRICPOLAR pctp,PCRDTOPOCENTRIC pct);//由站心地平直角坐标转换为站心地平极坐标


#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?