/*******************************************************************************
|
* 文件名称 : geo_utils.h
|
* 文件说明 : LLA/ECEF/ENU 坐标转换工具
|
* 创建日期 : 2025-11-22
|
*******************************************************************************/
|
|
#ifndef FML_GEO_UTILS_H_
|
#define FML_GEO_UTILS_H_
|
|
#include "HIDO_TypeDef.h"
|
#include "GPS.h"
|
|
/* ENU 原点缓存结构 */
|
typedef struct
|
{
|
double lat_deg; /* 原点纬度 (deg) */
|
double lon_deg; /* 原点经度 (deg) */
|
double alt_m; /* 原点高程 (m) */
|
double lat_rad; /* 纬度 (rad) */
|
double lon_rad; /* 经度 (rad) */
|
double sin_lat; /* sin(lat) 预计算 */
|
double cos_lat; /* cos(lat) 预计算 */
|
double sin_lon; /* sin(lon) 预计算 */
|
double cos_lon; /* cos(lon) 预计算 */
|
double ecef[3]; /* 原点 ECEF 坐标 (m) */
|
HIDO_BOOL initialized; /* 是否已经初始化 */
|
} ST_GeoOrigin;
|
|
/* 使用 GGA 原点(deg/m)初始化 ENU 缓存 */
|
HIDO_VOID Geo_OriginInit(ST_GeoOrigin *_pstOrigin, double _latDeg, double _lonDeg, double _altM);
|
/* 将 GPRMI 经纬高转换为 ENU 坐标 */
|
HIDO_VOID Geo_GprmiToENU(const ST_GPRMI *_pstGprmi, const ST_GeoOrigin *_pstOrigin, float _enu[3]);
|
|
#endif /* FML_GEO_UTILS_H_ */
|