libgnss++:现代 C++20 GNSS 定位工具库
面向非 GUI 定位的 C++20 GNSS 工具库,支持 SPP、RTK、PPP、CLAS 与 IMU 融合。
- 浏览
- 1
- 访问
- 0
- 下载
- 0
- 版本
- v0.5.0
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
libgnss++ 是一个现代 C++20 GNSS 工具库,专注非 GUI 的定位计算。它原生支持 SPP、RTK、PPP、CLAS/MADOCA、RTCM、UBX,并能直接处理 QZSS L6,无需依赖外部 RTKLIB 运行时。
项目同时提供命令行工具、可安装的 CMake 包、Python 绑定、Docker 镜像、ROS 2 回放以及浏览器 GUI。

主要功能
- 解算器:
gnss spp、gnss solve、gnss ppp - 输入与工具:RINEX、RTCM、UBX、SBF、NMEA、BINEX、QZSS L6
- 产品:
SP3、CLK、IONEX、DCB - 扩展:基准测试、Web 面板、Python 绑定、Docker、ROS 2 回放
- GNSS/IMU 紧耦合融合与批量 FGO(实验性)
浏览器 GUI 将 gnss_convert、gnss_rinex_info、gnss_visibility、gnss_spp、gnss_solve、gnss_fuse、gnss_ppp、gnss_fgo 编译为 WebAssembly,使用与 CLI 相同的 main() 和选项,文件保留在浏览器中,每次运行都会显示等价的 gnss ... 命令。

安装与使用
无需安装即可试用浏览器 GUI:
https://rsasaki0109.github.io/gnssplusplus-library/app/
最快的命令行方式使用已发布的运行时镜像,无需本地构建:
mkdir -p output
docker run --rm -v "$PWD/output:/workspace/output" \
ghcr.io/rsasaki0109/gnssplusplus-library:v0.5.0 \
demo --output-dir /workspace/output/self-contained-demo
该命令在镜像可用后完全离线运行项目自带的合成 PPP 数据,应报告 8 个已处理、8 个有效的 PPP 解,并在 output/self-contained-demo/ 下写出 demo_solution.pos、demo_solution.kml 和 demo_summary.json。这只验证 CLI/构建/产物链路,不代表真实精度。
从源码构建并运行同一演示:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target gnss_ppp --parallel 2
python3 apps/gnss.py demo
作为 C++20 库使用
安装后会导出标准 CMake 包与 libgnsspp::gnss_lib 目标:
find_package(libgnsspp CONFIG REQUIRED)
target_link_libraries(my_gnss_app PRIVATE libgnsspp::gnss_lib)
安装前先构建完整导出库集合:cmake --build build --parallel 2,然后执行 cmake --install build --prefix <prefix>,使用方通过 -DCMAKE_PREFIX_PATH=<prefix> 配置。
注意事项
- 项目以 C++20 编写,使用 CMake 构建,许可证为 MIT。
- README 中的精度对比来自特定数据集与配置,属于选定片段的演示结果,不等同于全量基准。
- 浏览器 GUI 中的所有计算在本地完成,文件不会上传。
本作品整理自 GitHub 开源项目 rsasaki0109/gnssplusplus-library,原作者 @rsasaki0109,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.5.0当前版本
新增浏览器 GUI:命令行工具原样编译为 WebAssembly,提供 RTKLIB 风格界面;修复 gnss fuse --kml 输出为空、融合历元缺失于解算统计、gnss fgo --preset real-data-fixed 的 FIX 标签等问题。
评论