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 + -
显示快捷键?