文章目录
type.h
定义了使用到的常数、结构体和函数。
#pragma once
#define a84 6378137.0 // WGS84椭球长半轴(m)
#define e84 0.08181919 // WGS84椭球离心率
#define PI 3.141592653589793 // 圆周率
#define D2R PI/180.0 // 角度 -> 弧度
#define R2D 180.0/PI // 弧度 -> 角度
// 结构体:笛卡尔坐标
typedef struct XYZ
{
double X;
double Y;
double Z;
};
// 结构体:大地坐标
typedef struct BLH
{
double B; // 大地纬度
double L; // 大地经度
double H; // 大地高
};
// 结构体:椭球曲率半径
typedef struct RNRM
{
double RN; // 卯酉圈曲率半径
double RM; // 子午圈曲率半径
};
// 函数:BLH -> XYZ
XYZ blh2xyz(BLH blh);
// 函数:XYZ -> BLH
BLH xyz2blh(XYZ xyz);
// 函数:求卯酉圈、子午圈曲率半径
RNRM getrnrm(BLH blh);
convert.cpp
函数的具体实现,包括求卯酉圈、子午圈曲率半径和坐标转换。
#include"type.h"
#include <math.h>
RNRM getrnrm(BLH blh)
{
RNRM rnrm;
rnrm.RN = a84 / sqrt(1 - e

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



