
本文說明如何使用 Road Selection API,為道路管理洞察 (RMI) 產品定義 SelectedRoutes 的最佳做法。正確定義 SelectedRoutes 是最重要的一步,可確保您收到要監控路段的準確可靠流量資料。如需完整的技術總覽,請參閱官方的 Road Selection API 說明文件。
建立 SelectedRoute 的核心原則
定義要監控的 SelectedRoute 時,請遵守下列原則,確保 SelectedRoute 的準確性及資料有效性。
1. 適用於路側
SelectedRoute 應代表單一旅行方向。如果是分隔式高速公路或有中央分隔帶的道路,您應為每個方向建立個別的 SelectedRoute 物件 (例如,一個用於北向,一個用於南向)。請確保起點、目的地和所有中途停靠點都位於道路的正確側,以便監控所需方向。如果起點或目的地位於分隔式高速公路的錯誤側,可能會導致系統選取錯誤的路線或發生資料錯誤。
2. 處理多層道路和天橋
在多層的複雜道路上 (例如堆疊式高速公路、天橋、複雜的交流道),單一緯度和經度配對可能不夠明確,導致路線「對齊」到錯誤的層級。為避免這種情況,請使用中途航點,引導路線前往正確的路段和層級。新增一或多個途經點,確保路線符合你的確切意圖。
3. 定義有效的起點和終點
SelectedRoute 不得在隧道內開始或結束。SelectedRoute 的起點和終點應位於室外。系統支援穿越通道的 SelectedRoutes,但監控區隔本身無法在通道內開始或結束。

4. 定義適當的路徑長度
SelectedRoute 具有彈性,可定義於各種規模:
- 短路線:SelectedRoute 可以小至單一城市街區,這對於都會區的精細分析很有幫助。
- 一致的路徑:您可以定義等距的 SelectedRoutes (例如每 0.5 英里),確保報表資料一致。
- 長路線:SelectedRoute 可以涵蓋長而連續的路段。非常適合監控整個高速公路走廊,或重要路口之間的主要幹道。
請選擇最符合監控和分析需求的 SelectedRoute 長度。
5. 識別有垂直分隔的道路路段 (隧道、高架道路、橋梁等)
使用經緯度座標定義路段時,請務必考量多個路段佔用相同二維地理空間,但垂直分隔的狀況。這類情況通常發生在隧道、高架道路、天橋和橋樑等結構。如果只依據經緯度,而不考慮海拔高度,可能會導致「SelectedRoute」選取和導航不準確。舉例來說,如果道路通過隧道,其上方緯度和經度會與上方路段相同。同樣地,高架道路或橋樑會與下方的道路共用水平座標。如果無法區分這些垂直堆疊的區隔,可能會導致路徑系統誤將流量導向較低層級的道路,而非較高層級的道路,反之亦然。
以波士頓的 42.362347、-71.055935 為例,當地有一條名為「大挖掘」的巨大隧道。

如果我們在道路上放置途中的航點,即使是地理座標的些微誤差,都可能導致路徑計算結果大相逕庭。航點位置的敏感度是 SelectedRoute 選取演算法的關鍵因素。
舉例來說,假設航點一開始是設在隧道內。如果這個中途點的位置稍有調整,移至鄰近的聯外道路,即使經緯度座標幾乎相同,路線引擎也可能會產生完全不同的路線。這項現象凸顯了精確輸入中途點的重要性,以及路線最佳化所涉及的複雜性,尤其是在道路網路和地理特徵複雜的區域。


6.並非所有道路都能追蹤
SelectedRoute 可能無法隨時追蹤
- 超出註冊「管轄區」
- 「道路實用性」偏低
- 這可能會導致追蹤能力隨時間改變
驗證會以非同步方式執行 ⇒ 檢查已註冊的 SelectedRoutes 是否都已通過這項驗證
SelectedRoute 定義的最佳做法
請按照下列最佳做法,提升 SelectedRoute 定義和相關資料的品質。
使用中繼路線控點 (中點)
即使是看似簡單的短途 SelectedRoutes,也強烈建議至少加入一個中途停靠點。
- 為什麼?
- 路線指引:確保 SelectedRoute 遵循您想要的特定路線,特別是起點和目的地之間有替代道路時。
- 啟用迴圈:如要正確表示迴圈或「來回」SelectedRoutes,其中起點和目的地相同,就必須啟用這項功能。
- 提升繞道偵測功能:提供的航點越多,就越容易偵測及標記流量可能偏離預期 SelectedRoute 的資料點。
- 如何進行?
- 您可以使用地理空間函式,以程式輔助方式找出已知 SelectedRoute 的中點。
- 範例 (BigQuery):使用 ST_LINEINTERPOLATEPOINT 函式。
- 範例 (JavaScript):使用 Turf.js 程式庫的 along 函式。
比對外部系統的路徑
如果您從外部 GIS 或以不同路網建構的系統匯入路線資料,座標可能無法與 Google 路網完全對齊。這可能會導致「非預期的路線」。
- 修正方式:
- 檢查道路兩側:首先,請確認出發地和起點位於道路的正確側。
- 道路對齊:使用 Roads API v2 matchPath 方法,將現有路線資料對齊 Google 的道路網路。
- 手動調整及重新繪製:在工具中手動調整航點,使其與 Google 的道路相符。接著,使用 Routes API 的 computeRoute 方法 (將流量設為「不瞭解」),產生沿著 Google 網路的乾淨折線。
- 追蹤:萬不得已時,請在 GIS 工具中將資料疊加在 Google 的道路網路上,然後手動追蹤路線,建立新的途經點。
資料清理和驗證
您在 BigQuery 中收到的資料會反映實際情況。您應套用清除步驟,篩除無法代表核心 SelectedRoute 的資料。
處理繞道路線
Routes API (RMI 的幕後推手) 一律會嘗試傳回有效路線。如果預期的 SelectedRoute 遭到封鎖或嚴重壅塞,API 可能會傳回繞道路線,並偏離您定義的中間途經點。舉例來說,如果 SelectedRoute 指定的路線是從 A -> B -> C,繞道可能會導致系統傳回直接從 A -> C 的路線。

對於 RMI 而言,這些繞道記錄的用處不大,因為這些記錄並未代表您監控的特定 SelectedRoute。
- 行動:請勿只刪除這些資料列,您應標記這些路段以供分析,瞭解發生繞道情況的時間和原因。
- 如何標記繞道:您可以透過兩種主要方法,以程式輔助方式找出繞道:
- 路線控點不符:檢查傳回的路線幾何圖形是否未包含所有指定的中途路線控點。
- 距離差異:檢查傳回路徑的
distance是否與SelectedRoute的預期距離有顯著差異。常見的門檻是 5% 的差異。
- BigQuery 範例:標記繞路:您可以將
SelectedRoutes資料表 (內含預期距離) 與RouteResponses資料表聯結,並使用CASE陳述式建立標記。
處理「MultiLineString」幾何圖形
BigQuery 的 GEOGRAPHY 資料類型有項限制:無法儲存與自身重疊的單一 LineString (例如迴轉、因繞道而重複的路徑)。
- 症狀:發生這種情況時,BigQuery 會將幾何圖形儲存為
MultiLineString,且路徑可能缺少部分路段。 - 行動:您應從主要分析中篩除這些記錄。
- BigQuery 篩選器:使用
WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"
- BigQuery 篩選器:使用
- 解決方法:
- 如果重疊是由繞路所致,則可按照上述方式篩除記錄。
- 如果預期的 SelectedRoute 包含重疊部分,您應將 SelectedRoute 分成兩個以上的獨立
SelectedRoute物件,重新定義 SelectedRoute。
時區轉換
RMI BigQuery 匯出資料中的所有時間戳記資料,均以世界標準時間 (UTC) 提供。如要以當地時區製作報表或進行分析,請轉換這些時間戳記。
- BigQuery 時間轉換範例:使用
DATETIME和TIMESTAMP函式,將世界標準時間時間戳記轉換為特定當地時區,例如「America/Los_Angeles」。
結論
只要遵循本指南的最佳做法,就能確保 SelectedRoute 定義準確無誤,進而從 Roads Management Insights 產品取得可靠且實用的交通資料。正確定義路線、處理複雜的道路幾何形狀,以及驗證產生的資料,都是充分發揮 RMI 潛力,滿足道路管理需求的關鍵步驟。
作者
Sarthak Gangopadhyay:Google 地圖開發人員關係 Naoya Moritani:Google 地圖開發人員關係