DriverTaipei - 智慧駕駛助手
專案起源
2015 臺大黑客松(2015-08-20 ~ 2015-08-23)比賽作品
在台北開車時,駕駛經常需要在多個 App 之間切換:用 Google Maps 看路況、用其他 App 找停車場、再用另一個 App 查詢加油站位置。這種體驗相當破碎且不便。
DriverTaipei 的理念是「一個 App 解決所有駕駛需求」,整合台北市政府開放資料,提供即時交通資訊查詢服務。
核心功能
1. 即時路況查詢
- 整合台北市即時交通資訊 API
- 顯示主要道路的車流量狀態
- 標示施工路段與封閉路段
- 推播重大交通事故通知
2. 智慧停車場搜尋
- 台北市公有停車場即時車位資訊
- 機車停車格位置查詢
- 以目的地為中心搜尋附近停車場
- 顯示費率資訊與營業時間
3. 加油站定位服務
- GPS 定位查詢最近的加油站
- 顯示品牌、營業時間、服務項目
- 一鍵導航至選定的加油站
4. 施工與路況警示
- 顯示道路施工資訊
- 標示臨時交通管制區域
- 建議替代路線
技術架構
移動端開發
- Android (Java) - 原生 Android 開發
- iOS (Swift) - 原生 iOS 開發
- Google Maps SDK - 地圖與導航功能
- GPS Location Service - 定位服務
後端服務
- RESTful API - 提供資料查詢介面
- 資料快取機制 - 減少 API 請求次數
- 定時任務 - 每 5 分鐘更新一次即時資料
資料來源
整合台北市政府開放資料平台:
- 台北市即時交通資訊
- 停車場即時車位資訊
- 加油站位置資料
- 道路施工資訊
技術亮點
1. 高效能地圖渲染
大量的停車場、加油站、施工點位需要在地圖上顯示,直接渲染會造成效能問題。解決方案:
- 使用 Marker Clustering 將相近的標記聚合
- 根據地圖縮放層級動態載入標記
- 實作虛擬化技術,只渲染可視範圍內的標記
2. 智慧推薦演算法
根據使用者的目的地和當前位置,計算最佳的停車場選擇:
評分 = (距離分數 × 0.4) + (剩餘車位分數 × 0.3) +
(價格分數 × 0.2) + (使用者評價 × 0.1)
3. 離線地圖快取
為了在網路不穩定時也能使用:
- 實作 LRU (Least Recently Used) 快取策略
- 預先下載常用區域的地圖資料
- 離線狀態下仍可查看已快取的資訊
開發挑戰
1. 跨平台一致性
同時開發 iOS 和 Android 版本,需要確保兩個平台的功能和體驗一致。解決方式是統一 API 設計,並制定詳細的 UI/UX 規範文件。
2. 即時資料同步
台北市的交通資料更新頻率高,需要設計高效的資料同步機制。採用增量更新策略,只傳輸變更的資料,減少流量消耗。
3. 電池續航最佳化
GPS 持續定位會快速消耗電量。最佳化方式:
- 使用智慧定位策略(移動時高頻率,靜止時低頻率)
- 背景狀態下降低更新頻率
- 提供省電模式選項
黑客松經驗
在短短 72 小時內:
- 完成產品設計與原型開發
- 整合 4 個政府開放資料 API
- 實作 Android 和 iOS 雙平台
- 進行使用者測試與最佳化
這次經驗讓我學會如何在時間壓力下:
- 快速決策與取捨功能
- 團隊協作與分工
- MVP (最小可行產品) 的開發思維
成果
- 在 App Store 和 Google Play 上架
- 累積超過 5,000 次下載
- 使用者評分 4.2/5.0
- 開源專案獲得 50+ Stars
