2023年10月10日 星期二

tdx7984 "去坐巴士": 「過某站所有路線」 按照 「下一站站名」 排序的公車到站時刻網頁服務

眾頁面彼此連結圖 「台灣等公車」這個手機 app 算是蠻好用的, 但是還缺幾個我很需要的功能, 所以我就寫了 tdx 7984 "去坐巴士", 並且在我退休後的新網站上面提供 這個服務。 它有以下的特性與限制:

  1. 如果有一天太紅了、 太多人使用, 我可能會加上密碼保護, 只給親朋好友使用。 歡迎大家下載程式碼、 各自架設自己的服務
  2. 它的 SSL 採用我自簽的憑證, 所以第一次造訪頁面時, 瀏覽器會出現可怕的警告畫面。 選擇信任我的憑證就對了。 反正只是查詢公車資訊而已, 就算沒有加密直接裸奔也不會怎麼樣啊。
  3. 從頭到尾只有 html 跟 css。 即使是不支援 javaScript 的文字瀏覽器也可以看。
  4. 所以不會自動更新; 需要不時手動重新整理網頁。
  5. 查詢 「經過某站牌的所有路線」 時, 後端需要呼叫很多次 tdx 的 API, 所以網頁的反應會很慢。 特別像是市中心、火車站之類有很多路線經過的站牌, 可能需要等好幾十秒。 (桌機) 瀏覽器的左下角會顯示後台還在努力當中。
  6. 從首頁 (上面連結) 進去會看到所有縣市列表...
  7. 點選一個縣市會看到該縣市所有路線列表。 這個頁面有點亂, 不過沒關係, 反正很少用。 用瀏覽器 「在此頁面中搜尋」 的功能找到你要的路線, 點進去...
  8. 某路線的所有站牌預估到站時間列表: 相當於「台灣等公車」同樣功能的去回程兩個頁面合併在一起。 點選某個站名...
  9. 經過某站牌的所有路線預估到站時間表: 這一頁的特殊排序是我最得意的部分。 「台灣等公車」的同樣功能頁面上, 眾多路線沒有特別的順序, 有點難看。 我的頁面會按照各個路線的下一站名稱排序; 相同下一站名稱的, 再按照預估抵達時間排序。 比方我正在查看台中 霧峰 站的頁面, 我想往台中市方向搭車, 那就可以只看所有下一站是 「中正草湖路口」 的路線, 一眼就很清楚這個方向的所有公車即將抵達的順序。 點 「相對座標」, 表格會多展開兩欄, 顯示下一站相對於本站的座標 (單位公尺)。 在陌生的城市或區域裡, 這對於大略判斷公車的方向會有一些幫助, 連地圖都不必開。 (最常混淆的就是同一路線、 正好差 180 度的兩個相反方向。)
  10. 另外, 在某路線到站時間表的下方, 有個連結連向發車時刻表, 但這只有少數縣市提供。
  11. 某些地方還沒有 debug 完, 會出現 AssertionError 或 internal error 之類的, 例如南投的 3 號路線。 請改試其他路線或站牌。

理論上所有縣市應該要提供相同的API; 但實際上不同縣市提供的資料有很多出入。 我的程式有很多篇幅花在處理縣市差異。 主要測試的只有台中、 高雄、 台北、 新北。 萬一還是有 bug 請在本文留言、 註明日期/時間/查詢的路線或站名 (含縣市名) 或到 github 開 issue。

好幾年前就想寫的程式, 退休以後終於有空完成, 現在天天用自己寫的程式超開心! 各縣市公車跟 ubike, 我來了!

1 則留言:

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。