提出要求時,您必須決定是否適合傳回最準確的結果,或是盡快傳回結果。Routes API 提供多種選項,可讓您控制回應資料品質和回應延遲時間。
設定流量資料層級
Routes API 提供 RoutingPreference (REST) 和 RoutingPreference (gRPC),讓您指定用於計算路線的轉送偏好設定。這些偏好設定會考慮流量條件會納入路徑計算中。每個轉送偏好設定會產生不同的結果,因為路徑品質、預估預計到達時間和回應延遲時間不同。
流量特性會區分流量流向。例如:
- 在沒有壅塞的情況下,系統會將路況視為正常現象,並以正常速度放送流量。
- 即將在尖峰時段處理服務,流量密度會提高,導致流量變慢,並產生中等車流量。
- 在串場廣告流量的瞬間中,流入水流會遇到停頓,導致交通壅塞。
交通壅塞
設定 TRAFFIC_UNAWARE
轉送偏好設定時,系統不會將目前的路況納入考量以計算路徑。這個轉送偏好設定提供最短回應延遲 (系統以最快的速度傳回回應)。
預設設定為 TRAFFIC_UNAWARE
。
在回應中:
延展型文字廣告包含在
duration
回應屬性中。duration
和staticDuration
回應屬性含有相同的值。
如果您希望回應傳回最快的速度,且概略的轉送詳細資料就足夠,請使用此轉送偏好設定。
交通壅塞
設定 TRAFFIC_AWARE
轉送偏好設定時,系統會根據目前路況計算路徑。因此,路線和路線詳細資料能夠更準確反映實際情況。由於資料品質的增加會導致回應延遲,因此系統會套用效能最佳化功能來縮短延遲時間。
在回應中:
將即時流量納入考量的 ETA 包含在
duration
回應屬性中。staticDuration
回應屬性包含透過路線經過的交通時間,但不會將路況納入考量。
如果想要比 TRAFFIC_UNAWARE
更精確地轉送轉送詳細資料,請使用此轉送偏好設定,但不確定是否要傳回回應速度較慢的回應。
交通壅塞
設定 TRAFFIC_AWARE_OPTIMAL
轉送偏好設定時,系統會針對目前的路況計算路徑,但不會套用效能最佳化。在這個模式中,伺服器會搜尋更全面的路網,尋找最佳路線。
TRAFFIC_AWARE_OPTIMAL
轉送偏好設定相當於 maps.google.com 和 Google 地圖行動應用程式使用的模式。
搭配 Compute Route Matrix 使用這個選項時,要求中的元素數量 (起點數 × 目的地數量) 不得超過 100 個。如要進一步瞭解 Compute Route Matrix 限制,請參閱「計算路徑矩陣」。
在回應中:
將即時流量納入考量的 ETA 包含在
duration
回應屬性中。staticDuration
回應屬性包含透過路線經過的交通時間,但不會將路況納入考量。
這個轉送偏好設定提供最高的回應延遲時間 (即回應延遲時間最長的回應)。如果需要最高品質的結果,不用考慮回應時間長短,請使用這項轉送偏好設定。
設定出發時間的影響
您可以視需要使用 departureTime
屬性設定行程出發時間。如果您並未設定 departureTime
屬性,該預設值會預設為您發出要求的時間。
對
TRAFFIC_UNAWARE
來說,您無法設定departureTime
,因為選擇的路徑和時間長度取決於路網,以及不考慮時間的平均路況。TRAFFIC_AWARE
和TRAFFIC_AWARE_OPTIMAL
會將即時路況條件納入考量,即時流量對departureTime
的更重要。將出發時間設在未來之後,系統會將較多的流量視為歷來路況。
轉送偏好設定範例
下列 JSON 程式碼示範如何在要求訊息實體主體中設定轉送偏好設定。
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
設定折線品質
透過 Routes API,您可以要求路況以及交通感知折線。詳情請參閱「要求折線」。
折線的品質如下所述:
組成折線的點數量
更多的點越多,折線就越平滑 (特別是在曲線)。
資料點的浮點精確度
點會以緯度和經度值的形式定義,並以單精度浮點格式表示。這種做法適用於較小的值 (可以準確表示),但精確度會因浮點四捨五入錯誤而增加。
computeRoutes 方法 (REST) 和 ComputeRoutes 方法 (gRPC) 支援 polylineQuality
要求選項,用於控管折線品質。
設定折線品質的範例
polylineQuality
可將折線的品質指定為 HIGH_QUALITY
或 OVERVIEW
(預設)。使用 OVERVIEW
時,折線是由少量點組成,且要求延遲時間比 HIGH_QUALITY
短。
例如,在要求內文中:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }