最近需要频繁出差,于是用 Python 和 JavaScript 造了一个寻找最短路径的工具,托管在 https://metro.lihanming.me/。界面看起来像这样:

它具有以下的功能:
- 站点提示(输入站名、线路名,可以提示一些车站)
- 根据当前位置寻找最近的车站,并提示怎么走过去(感谢高德地图)
- 寻找路径(支持按最短时间、换乘较少等模式查询)
- 提示行车时间(目前京沪穗三个地方支持实际时间,其他城市支持估算时间)
目前支持中国内地所有有地铁的城市、香港(不含轻铁和电车)、台北和东京(两大地铁和 JR 部分线路)。伦敦正在写。线路保存在 JSON 文件中,可以随时扩展。
比较有趣的细节:
- 支持虚拟换乘。虚拟换乘站会提示,并且会有不需要虚拟换乘的方案提供。(南京西路、上海火车站)
- 支持不同运营商或票务系统。如果行程需要转乘会提示。(如龙阳路、三元桥、青衣等)

目前几个需要努力的地方:
- 优化变量名。尽可能做到没有文档也能看懂;
- 连续多个换乘站的处理(四惠-四惠东、中环-金钟等);
- 提升算法性能。目前使用的算法在初始化时需要的时间比较长;
- 多语言支持。目前都是使用本地文字;
- 用户界面优化。城市太多了需要想个办法呈现;
- 几个城市合在一起做一个大的系统,并且包括一些城际线路(珠三角、长三角)
- 其它(包括你们的意见和建议);
最后欢迎大家试试,希望它能在你们旅行出差的时候帮到你们,也欢迎你们提出意见和建议。
网址: https://metro.lihanming.me/
源码: https://github.com/DaZui/MetroSearch/
Jason