张功茂 / 开发履历
← 返回全部 11 个项目

PROJECT 05 / 11

Qt 鸿蒙

上海地铁可视化系统

C++ / Qt / HarmonyOS 开发工程师2025.03 — 2025.09

构建 15 条线路、286 个站点的地铁网络,实现双策略路径规划,并迁移至鸿蒙 2in1。

Qt WidgetsC++DijkstraCMake

核心技术栈

图形渲染引擎: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端稳定安装、启动与运行。