造了一个查找地铁换乘的轮子

2016-08-03 18:55:56 +08:00
 jasonlee

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

它具有以下的功能:

  1. 站点提示(输入站名、线路名,可以提示一些车站)
  2. 根据当前位置寻找最近的车站,并提示怎么走过去(感谢高德地图)
  3. 寻找路径(支持按最短时间、换乘较少等模式查询)
  4. 提示行车时间(目前京沪穗三个地方支持实际时间,其他城市支持估算时间)

目前支持中国内地所有有地铁的城市、香港(不含轻铁和电车)、台北和东京(两大地铁和 JR 部分线路)。伦敦正在写。线路保存在 JSON 文件中,可以随时扩展。

比较有趣的细节:

  1. 支持虚拟换乘。虚拟换乘站会提示,并且会有不需要虚拟换乘的方案提供。(南京西路、上海火车站)
  2. 支持不同运营商或票务系统。如果行程需要转乘会提示。(如龙阳路、三元桥、青衣等)

目前几个需要努力的地方:

  1. 优化变量名。尽可能做到没有文档也能看懂;
  2. 连续多个换乘站的处理(四惠-四惠东、中环-金钟等);
  3. 提升算法性能。目前使用的算法在初始化时需要的时间比较长;
  4. 多语言支持。目前都是使用本地文字;
  5. 用户界面优化。城市太多了需要想个办法呈现;
  6. 几个城市合在一起做一个大的系统,并且包括一些城际线路(珠三角、长三角)
  7. 其它(包括你们的意见和建议);

最后欢迎大家试试,希望它能在你们旅行出差的时候帮到你们,也欢迎你们提出意见和建议。

网址: https://metro.lihanming.me/

源码: https://github.com/DaZui/MetroSearch/

Jason

5578 次点击
所在节点    分享创造
47 条回复
jasonlee
2016-08-11 06:09:19 +08:00
@akaayy 这是个轮子。另外百度地图目前无法提示出站换乘和转乘。这方面做得比较好的其实是日本人。
wshcdr
2016-08-11 14:57:24 +08:00
以前写过类似的,这东西其实不容易写的...
jojobobo
2016-08-11 21:01:52 +08:00
非常帮,,哈哈 为什么你这么棒
jasonlee
2016-08-12 11:21:03 +08:00
@wshcdr 是的。很多容易掉进去的陷阱。也祝您编程之路愉快
jasonlee
2016-08-12 11:21:19 +08:00
@jojobobo 多谢夸奖。编程之路愉快。
kyzylsy
2016-08-17 17:48:35 +08:00
web 版点击寻找线路根本没有反应。。。差评
jasonlee
2016-08-17 20:19:30 +08:00
@kyzylsy 是不是网络问题?一般多点几次会有结果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/296910

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX