自己平日通勤需要進行多次公車轉乘,在轉乘途中時常會需要花許多時間等待。若能夠事先知道所有可以到達目的地的路線選擇中,哪一種組合能使得等待、罰站的時間最少,甚至是能夠經過特定地點,能夠提供我自己更多選擇考量。
介面設計圖
1. 此為進入畫面
(未來可以增加登入、註冊功能,儲存個人紀錄)
2. 主頁面:自訂查詢
(以Google地圖呈現當前位置,選項部分則是在輸入目的地後,列出途中餐廳、旅館、是否趕時間等等因素作為考量依據)
3. 結果顯示
(跑馬燈提示使用者先前做的選擇,底下則分別以地圖及表格顯示站點名稱、預估到達時間等資訊)
目前成果(跑馬燈提示使用者先前做的選擇,底下則分別以地圖及表格顯示站點名稱、預估到達時間等資訊)
成功轉接公車即時資料到 iOS 程式中,並且將其中重要資訊呈現:在上圖中,紅色地標為從統領百貨(圖左)前往銘傳大學(圖右)所經過公車站牌,灰色地標則為回程公車站牌。而 137 路公車則是以綠色地標表示(由於撰寫此文章時,已經晚上 11 點,故沒有車班可顯示)。
此地圖每五秒更新一次資料,點擊任一站牌將會呈現該站牌資訊:
- 某車牌號碼公車
- 去程/回程
- 將於幾分鐘後到達
- 到達時間
(由於撰寫此文章時,已經晚上 11 點,故上圖僅顯示站牌名稱,以下為站牌部分的程式碼截圖)
- 程式介面
- 使用者註冊功能
- 選項:餐廳、旅館、景點、考量因素(時間、金錢、經過特定地點)
實作中遭遇的困難、一些心得
- 程式介面:
- 課堂用書偏向機械式地要求你跟著書中的步驟去做,較不易理解程式碼含義。若了解 Swift 語法再跟著做(比如建立可以滑動的表格),應該會比較有效率。
- 公車動態資料嫁接:
- 我自己在尋找可靠的公車動態資料時花了不少時間。
- 對於「桃園開放資料-公車動態」,政府單位提供的資料欄位解釋與我實際取得到的資料並不完全吻合,解釋得很不清楚(比如:去程回程是以 1, 2 兩數值表示,但是提供的欄位說明沒有提到 1, 2 哪個是去程,哪個是回程)
- 「交通部」所提供的資料才是清楚、正確、完整的。
- 程式撰寫:
- 要學怎麼用 cocoapods 來加入所需要的套件
- 取得到的資料格式為 json,轉成物件會比較好處理,但是就需要學習不少別人寫的函式庫的語法:
- Alamofire
- AlamofireObjectMapper
- ObjectMapper
- AlamofireImage
- 在地圖更新部分,以下為遇到的問題及解法:
- 邏輯部分以外,像是函式庫、介面的程式碼,最好就是知道怎麼用會有想要的效果,在製作上會比較省時,在製作上才會有效率。另外,在製作過程中很有可能會卡住,此時可以透過 stackoverflow 等網路社群找答案。





沒有留言:
張貼留言