📄 coordinate.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -