该软件面向有铁路出行需求的个人用户,填补了现有地图导航软件在铁路路径规划方面的缺陷,为铁路出行提供更适宜、更精细的方案。
市面上的地图导航软件的铁路路径规划功能存在个性化程度低、方案确定性低、不支持多次换乘、依赖云端计算等缺陷,无法满足更精细的出行需求,而该软件支持高度自定义、方案确定性高、支持任意次换乘、可离线运行,可完成地图导航软件无法完成的路径规划任务(如乌鲁木齐-三亚),可在地图导航软件可完成的任务中得到更优化(时间短、票价低)的方案,同时保留了地图导航软件直观可视的优点。
该项目分为三个部分:
1. 数据获取部分:主要使用 Python 内置的 urllib 库,以第三方 selenium 库为辅,通过分析 12306 网站的 API 接口和第三方信息网站的页面格式编写了爬虫获取铁路时刻表等数据;
2. 算法核心部分:对问题进行图论建模,运用分层图和 Bellman-Ford 算法思想,用 C++ 编写了基于动态规划 (DP) 的寻路算法,可作为控制台程序独立运行,可通过 stdin/stdout 交互,也可编译为 DLL 文件;
3. UI 界面部分:使用 Python 内置的 tkinter 库,使用 treeview 控件和 canvas 控件直观清晰地展示算法输出。