PROJECT 05 / 11
Qt 鸿蒙上海地铁可视化系统
C++ / Qt / HarmonyOS 开发工程师2025.03 — 2025.09
构建 15 条线路、286 个站点的地铁网络,实现双策略路径规划,并迁移至鸿蒙 2in1。
核心技术栈
图形渲染引擎:Qt Widgets(QGraphicsScene/QGraphicsView) + QPainterPath/QPolygonF, 自定义换乘站弧线与箭头渲染
图算法核心:C++ 邻接表建模,Dijkstra(最短路径)+BFS(最少换乘)双策略查询。
鸿蒙化链路:ArkTS UIAbility + Qt for OpenHarmony 平台插件(libplugins_platforms_qopenharmony.so) 启动 Qt 应用。
构建体系:DevEco + hvigor + CMake externalNativeOptions, 基于 QT_PREFIX 管理 Qt SDK 与 OHOS 条件编译。
打包部署:arm64-v8a 原生库集成(libSubwayProject.so + Qt Runtime), 产出 HarmonyOS HAP 安装包。
具体项目经历
1. 负责地铁网络核心数据建模与解析,完成15 条线路、286 个唯一站点、383 条连接边的数据加载与内存构图。
2. 设计并实现路径规划核心算法,支持"最短路径/最少换乘"双模式查询,满足大规模站点下的实时响应。
3. 实现 geoToScene 坐标转换引擎,完成真实经纬度与 UI 画布像素坐标精准对齐。
4. 基于 arcTo +向量计算实现换乘站多色弧线、方向箭头、分层渲染与站点边缘裁剪。
5. 设计地图交互状态机,解决拖拽、缩放、滚轮与站点点击冲突,提升交互稳定性。
6. 实现站点内嵌浮层与“设为起点/终点"智能传值,显著提升路径查询操作效率。
7. 主导 Qt 项目鸿蒙化接入, 在 EntryAbility/EmbeddedUIExtensionAbility 打通 qpa.startQtApplication 启动流程。
8. 负责 CMake 与构建参数适配(QT_PREFIX、OHOS 条件编译、动态库链接),保障跨端构建一致性与可维护性。
9. 完成HarmonyOS 打包验证与多设备适配,确保应用在2in1端稳定安装、启动与运行。