iT邦幫忙

0

Day7.欄位對齊與對應關係(固定 ↔ 即時)

  • 分享至 

  • xImage
  •  

前言
要在同一個畫面同時看到「站名」與「幾分鐘到」,關鍵在於兩份資料能不能對得上。沿用昨天的規則:欄位用小駝峰、時間用 ISO 8601(含時區)、持續時間用秒、枚舉用可讀字串。今天把「固定(站/路線)」與「即時(到站)」的對應關係講清楚,之後任何資料來源,只要放進這套對齊規則,就能穩定顯示。

對齊的核心欄位
固定資料(站/路線):routeId, routeName, stopId, stopName, lat, lon, direction, updateTime
即時資料(到站):routeId, stopId, estimateSeconds, stopStatus, direction, updateTime
兩邊共有的「橋樑」是 routeId+stopId(必要時加上 direction)。顯示名稱來自固定資料,倒數與狀態來自即時資料;新鮮度用 updateTime。

routeId/stopId 對齊圖(固定 ↔ 即時)
┌───────────────────────────┐ ┌───────────────────────────┐
│ 固定資料(站/路線) │ │ 即時資料(到站) │
│ │ 對齊欄位 │ │
│ routeId ────────────────┼──────────────▶ │ routeId │
│ stopId ────────────────┼──────────────▶ │ stopId │
│ direction ───────────────┼──────────────▶ │ direction │
│ stopName(顯示名稱) │ │ estimateSeconds(倒數秒) │
│ routeName(顯示名稱) │ │ stopStatus(狀態字) │
│ updateTime(資料時間) ───┼──────────────▶ │ updateTime(資料時間) │
│ lat/lon(地點資訊) │ │ │
└───────────────────────────┘ └───────────────────────────┘
│ ▲
│(畫面顯示用名稱) │(畫面倒數與新鮮度)
▼ │
routeName/stopName estimateSeconds/updateTime

對齊要點(名稱、型別、單位)
•名稱一致:兩邊都叫 routeId、stopId、direction,不要一邊 RouteID、一邊 route_id。
•型別一致:建議兩邊都用字串(例:"307"、"12345"),避免數字/字串混用。
•單位一致:倒數一律用 estimateSeconds(秒),顯示層再換成人話。
•時間一致:updateTime 一律用 YYYY-MM-DDThh:mm:ss+08:00(含時區)。

常見歪掉的情況與處理方式
•方向沒對上:同一 routeId 有去程/返程,請一併帶 direction 才能精準對齊。
•站名改了但編號不改:對齊仍以 stopId 為準,顯示名稱以最新 stopName 為主。
•即時回「暫無」「末班」:stopStatus 用可讀字串(normal/last/suspended/noData),不要把 -1 直接丟給使用者。
• 來源傳數字 ID:若固定資料用字串,統一轉成字串再比對(例:307 ↔ "307")。

小結
其中的核心只有一句話:用 routeId + stopId(必要時加 direction)把固定與即時接起來。名稱一致、型別一致、單位一致,畫面就能穩定地同時顯示站名與倒數;換資料來源或擴充到其他路線、站點,也能沿用同一套規則。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言