當您提出請求時,您可能需要決定是否應該傳回最準確的結果,或盡快傳回結果。Routes API 提供選項可讓您控制回應資料的品質與回應延遲時間。
設定流量資料等級
Routes API 提供 RoutingPreference (REST) 和 RoutingPreference (gRPC),可讓您指定計算路徑的轉送偏好設定。這些偏好設定在將流量條件納入考量到路徑計算時會有不同的。每項轉送偏好設定都會產生與路徑品質、預估預計到達時間和回應延遲時間相關的程度差異。
流量條件可代表流量的速率。例如:
- 沒有壅塞時,系統會將流量條件視為正常,並且以正常無阻的速度流動流量。
- 接近尖峰時段的流量時,流量密度就會增加,導致流量變慢,進而產生流量至中等流量條件。
- 在串場廣告至高流量的流量中,流量會逐漸停滯,導致交通壅塞。
無流量
設定 TRAFFIC_UNAWARE
轉送偏好設定時,系統在計算路徑時不會考量目前的路況。此轉送偏好設定提供最少的回應延遲 (傳回回應的速度最快)。
TRAFFIC_UNAWARE
為預設設定。
回應中:
預計到達時間會包含在
duration
回應屬性中。duration
和staticDuration
回應屬性包含相同的值。
當您希望盡快傳回回應時,請使用這個轉送偏好設定,而且約略轉送詳細資料就夠了。
交通認知
當您設定 TRAFFIC_AWARE
轉送偏好設定時,系統在計算路徑時會考量目前的路況。因此,路徑與路徑詳細資訊可以更準確地反映實際狀況。由於資料品質的增加會使回應延遲增加,因此會套用效能最佳化以降低許多延遲。
回應中:
將即時流量納入考量的延展型文字廣告包含在
duration
回應屬性中。staticDuration
回應屬性包含沿著路線進行行駛的時間長度,但不考量路況。
當您想要比 TRAFFIC_UNAWARE
更準確的轉送詳細資料時,請使用這個轉送偏好設定,但沒關係,在傳回回應時,延遲時間會稍微增加。
掌握路況
當您設定 TRAFFIC_AWARE_OPTIMAL
轉送偏好設定時,系統會依目前流量條件計算路徑,但不會套用效能最佳化。在這個模式下,伺服器會更全面地搜尋道路網路,找出最佳路線。
TRAFFIC_AWARE_OPTIMAL
轉送偏好設定相當於 maps.google.com 和 Google 地圖行動應用程式使用的模式。
將這個選項與 Compute Route Matrix 搭配使用時,要求中的元素數量 (起點數 × 目的地數) 不得超過 100。如要進一步瞭解 Compute Route Matrix 限制,請參閱計算路徑矩陣。
回應中:
將即時流量納入考量的延展型文字廣告包含在
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", ... }