Skip to content

附近站牌:同名群組共用一個距離,反向站牌的距離被低估 #50

Description

@AvianJay

問題描述

「附近站牌」把結果只依站名分組(lib/screens/nearby_screen.dart 的 _buildGroups()),
一張卡片配一個距離徽章。但同名的兩個站牌實際分屬馬路兩側,距離並不相同。

_results 在兩條取得路徑都已依距離排序
(bus_repository.dart fetchNearbyStops 與 _fetchNearbyStopsFromApi 結尾都有 results.sort(...)),
而分組時只在第一次遇到該站名時記錄距離:

if (!groupRoutes.containsKey(name)) {
  groupOrder.add(name);
  groupDistances[name] = item.distanceMeters;   // 只取最近的那筆
  groupRoutes[name] = [];
}

所以徽章永遠顯示群組中最近那個站牌的距離,對另一個方向的列則是低估。

重現步驟

  1. 站在一組雙向同名站牌附近(例:台中「捷運南屯站(文心路)」)
  2. 開啟「附近站牌」
  3. 觀察卡片左上角的距離徽章,再對照卡片內兩個方向的列

實際結果

兩個方向共用同一個距離數字,取自較近的那一側。點進較遠方向的站牌時,
實際要走的距離可能是徽章顯示值的數倍。

預期結果

距離資訊要能反映使用者實際要走到的那個站牌。

可能的修法

  • 距離改成逐列顯示,而非掛在群組標頭上;或
  • 分組鍵改為「站名 + 座標鄰近」而非純站名,讓馬路兩側各成一張卡片。

後者會改變畫面結構,需要一併確認 #47 加上的方向文字是否還有必要。

補充

由 #47 的修復過程中發現,該 issue 只處理「未顯示方向」的顯示問題,
刻意未動分組邏輯,故另開此issue追蹤。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions