这个项目能做什么

SNGNav 是一款为 Flutter 构建的离线优先导航架构,旨在 GPS 丢失、网络故障或极端天气等性能下降的情况下可靠运行。它集成了航位推算与卡尔曼滤波,以在信号丢失期间保持位置连续性;支持 MBTiles 用于离线地图渲染;并提供通过 OSRM 或 Valhalla(自托管或公共端点)实现的双路由方案。天气危险检测包括来自 JMA、MET Norway 和 NWS 的黑冰及行前预警。该系统运行在 Linux 桌面 (x64) 上,并通过 Yocto/QEMU 提供实验性的 ARM64 支持,尽管 GL 渲染在 upstream 仍处于阻塞状态 (flutter#183495)。安全覆盖层符合 ASIL-QM 标准,仅用于显示,并在危险条件下渲染在所有 UI 层之上。该项目由 36 个独立版本的 pub.dev 软件包组成,包括基于同意的车队数据模块、模拟环境以及通过 Dart defines 进行的提供商配置。虽然 flutter_map 提供了瓦片渲染基础,但 SNGNav 增加了韧性层:传感器融合、具备离线能力的流水线以及基于场景的容错机制。演示配置文件可模拟暴风雪、隧道导航和路线危险。实际硬件部署(如 Raspberry Pi)尚未验证。配置允许在不更改代码的情况下更换提供商。离线模式需要手动设置 MBTiles;默认瓦片源将回退至在线 OSM。CI 目前在每个分支上测试所有 36 个软件包,截至 2026 年 8 月,已有 3,181 多个测试通过。本项目并非旨在取代商业导航,而是服务于连接失效的边缘情况——目标用户是为极端环境下驾驶员构建安全关键系统的开发人员。