/******************************************************************************* * 文件名称 : 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_ */