設定流量選項

歐洲經濟區 (EEA) 開發人員

您選取的流量偏好設定會透過下列兩種方式,平衡路線詳細資料的準確度與要求效能:

  • 流量感知:盡可能傳回最準確的結果 (延遲時間較長)。
  • 不考慮流量:盡快傳回結果 (延遲時間最短)。

提出要求時,請權衡是要盡可能傳回最準確的結果,還是盡快傳回結果。Routes 程式庫提供多種選項,可讓您控制回覆資料的品質與回覆延遲時間。

設定流量等級和流量模型

如要指定流量層級,請在 ComputeRoutesRequest 中設定 routingPreference。下表列出可用的 routingPreference 選項:

  • TRAFFIC_UNAWARE (預設):以最快速度傳回結果,並提供概略的路線詳細資料。
  • TRAFFIC_AWARE:使用即時車流量資料傳回更準確的結果,但延遲時間較長。
  • TRAFFIC_AWARE_OPTIMAL:使用即時交通流量資料,盡可能傳回最準確的結果,但延遲時間最長。

TRAFFIC_MODEL 屬性代表預測交通時間時要採用的假設 ( TrafficModel.BEST_GUESS (預設)、 TrafficModel.OPTIMISTIC TrafficModel.PESSIMISTIC)。

如何選取「避開車流路線」

如要建立可感知流量的路徑要求,請按照下列步驟操作:

  1. travelMode 屬性設為 DRIVING

  2. routingPreference 屬性設為下列其中一項:

    • TRAFFIC_AWARE
    • TRAFFIC_AWARE_OPTIMAL

    注意:預設設定為 TRAFFIC_UNAWARE

  3. trafficModel 屬性設為下列其中一項:

  4. extraComputations 屬性設為 TRAFFIC_ON_POLYLINE

  5. 要求 pathspeedPathsrouteLabels 欄位。

以下範例要求說明如何要求路況感知路線,並在折線顯示路況資料:

// Define a traffic aware routes request with polylines.
const requestWithTraffic = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE_OPTIMAL',
  trafficModel: 'optimistic',
  extraComputations: ['TRAFFIC_ON_POLYLINE'],
  fields: ['speedPaths'],
};
    

路況

路況會顯示車流速度:

  • 正常交通:交通順暢,車輛以正常速度行駛。
  • 輕微至中等車流量:壅塞程度增加,車輛行駛速度減緩。
  • 交通壅塞:嚴重壅塞,車速大幅降低。

未提供路況資訊

TRAFFIC_UNAWARE 為預設設定。如果您希望系統盡快傳回回覆,且近似的路線詳細資料就已足夠,請使用這項轉送偏好設定。

TRAFFIC_UNAWARE 路線的計算不會考量目前路況。這種偏好設定可確保要求的回應速度最快 (延遲時間最短)。

如果選擇 TRAFFIC_UNAWARE,系統會根據路網及與時間無關的平均路況來選擇路線和時間,不會考量目前路況。因此,路線可能會包含暫時封閉的道路。受到路網變動、平均路況更新,以及這項服務的分散性質影響,特定要求的結果可能會隨時間而改變。此外,在時間或頻率都沒有限制的情況下,即使兩條路線幾乎相同,結果還是有可能不同。

你會看到以下回覆:

  • duration:包含路線的預計到達時間。
  • staticDuration:僅考量歷來交通資訊的路徑預計到達時間。如果是 TRAFFIC_UNAWARE,這個值與 duration 相同。

路況感知

如果您希望取得比 TRAFFIC_UNAWARE 更準確的路線詳細資料,但可以接受回應延遲時間略為增加,就適合使用這項路徑偏好設定。

設定 TRAFFIC_AWARE 路線偏好設定後,服務會根據目前的路況計算路線。因此,路線和路線詳細資料能更準確地反映實際情況。雖然資料品質提升會導致回應延遲,但系統會進行效能最佳化,盡量縮短延遲時間。

你會看到以下回覆:

  • duration:根據即時路況資訊計算的預計到達時間。
  • staticDuration:僅考量歷來交通資訊的路線預計到達時間。

車流量監測最佳路線

如果您想取得最高品質的結果,且不在乎回應時間長度,請使用這項路徑偏好設定。這個轉送偏好設定的回應延遲時間最長 (延遲時間最長)。

設定 TRAFFIC_AWARE_OPTIMAL 轉送偏好設定後,服務會考量目前的交通狀況來計算路線,但不會套用效能最佳化設定。在這個模式下,伺服器會更詳盡地搜尋道路網路,找出最佳路線。

TRAFFIC_AWARE_OPTIMAL 路線偏好設定等同於 maps.google.com 和 Google 地圖行動應用程式使用的模式。

如果搭配 computeRouteMatrix 使用這個選項,要求中的元素數量 (出發地數量 × 目的地數量) 不得超過 25 個。

你會看到以下回覆:

  • duration:根據即時路況資訊計算出的路線預計到達時間。
  • staticDuration:僅考量歷來交通資訊的路線預計到達時間。

設定出發時間 (選用)

只有在流量感知要求中,出發時間必須為未來時間時,才使用這個屬性。如未設定 departureTime 屬性,系統預設為您提出要求的時間。

如要調整服務預測流量的方式 (選擇路線時),請一併使用 departureTime 屬性以及 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 選項。

  • TRAFFIC_UNAWARE不建議,因為路線和所需時間的選擇將取決於路網,以及不考慮時間的平均路況。
  • TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL建議用於近期出發的行程,因為這些偏好設定會將即時路況納入考量。departureTime 距離現在的時間越近,即時車流量的影響力就越大。設定的預計出發時間越晚,系統在選擇路線時,就越會考量過往的交通狀況。

取得路線權杖

路徑權杖是路徑的 Base64 編碼表示法,可在網路上安全使用。使用路徑權杖與 Navigation SDK 分享路徑。即使在重新規劃路線時,SDK 也能使用這個權杖重建路線,並保留原始導航意圖。

如要取得路徑權杖,請按照下列步驟操作:

  • 將 travelMode 設為 DRIVING
  • routingPreference 設為 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
  • 要求 routeToken 欄位。

以下範例要求說明如何要求路徑權杖:

// Define a traffic aware routes request with a route token.
const requestWithRouteToken = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE',
  fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'],
};