4/28/2017

銘傳公車通

動機

  自己平日通勤需要進行多次公車轉乘,在轉乘途中時常會需要花許多時間等待。若能夠事先知道所有可以到達目的地的路線選擇中,哪一種組合能使得等待、罰站的時間最少,甚至是能夠經過特定地點,能夠提供我自己更多選擇考量。


介面設計圖
1. 此為進入畫面
(未來可以增加登入、註冊功能,儲存個人紀錄)


2. 主頁面:自訂查詢
(以Google地圖呈現當前位置,選項部分則是在輸入目的地後,列出途中餐廳、旅館、是否趕時間等等因素作為考量依據)


3. 結果顯示
(跑馬燈提示使用者先前做的選擇,底下則分別以地圖及表格顯示站點名稱、預估到達時間等資訊)


目前成果


  成功轉接公車即時資料到 iOS 程式中,並且將其中重要資訊呈現:在上圖中,紅色地標為從統領百貨(圖左)前往銘傳大學(圖右)所經過公車站牌,灰色地標則為回程公車站牌。而 137 路公車則是以綠色地標表示(由於撰寫此文章時,已經晚上 11 點,故沒有車班可顯示)。

  此地圖每五秒更新一次資料,點擊任一站牌將會呈現該站牌資訊:
  1. 某車牌號碼公車
  2. 去程/回程
  3. 將於幾分鐘後到達
  4. 到達時間
  (由於撰寫此文章時,已經晚上 11 點,故上圖僅顯示站牌名稱,以下為站牌部分的程式碼截圖)




尚未完成的部分
  • 程式介面
  • 使用者註冊功能
  • 選項:餐廳、旅館、景點、考量因素(時間、金錢、經過特定地點)


實作中遭遇的困難、一些心得
  • 程式介面:
    • 課堂用書偏向機械式地要求你跟著書中的步驟去做,較不易理解程式碼含義。若了解 Swift 語法再跟著做(比如建立可以滑動的表格),應該會比較有效率。
  • 公車動態資料嫁接:
    • 我自己在尋找可靠的公車動態資料時花了不少時間。
    • 對於「桃園開放資料-公車動態」,政府單位提供的資料欄位解釋與我實際取得到的資料並不完全吻合,解釋得很不清楚(比如:去程回程是以 1, 2 兩數值表示,但是提供的欄位說明沒有提到 1, 2 哪個是去程,哪個是回程)
    • 交通部」所提供的資料才是清楚、正確、完整的。
  • 邏輯部分以外,像是函式庫、介面的程式碼,最好就是知道怎麼用會有想要的效果,在製作上會比較省時,在製作上才會有效率。另外,在製作過程中很有可能會卡住,此時可以透過 stackoverflow 等網路社群找答案。






沒有留言:

張貼留言