設定品質與延遲時間

提出要求時,您必須決定是否適合傳回最準確的結果,或是盡快傳回結果。Routes API 提供多種選項,可讓您控制回應資料品質和回應延遲時間。

設定流量資料層級

Routes API 提供 RoutingPreference (REST) 和 RoutingPreference (gRPC),讓您指定用於計算路線的轉送偏好設定。這些偏好設定會考慮流量條件會納入路徑計算中。每個轉送偏好設定會產生不同的結果,因為路徑品質、預估預計到達時間和回應延遲時間不同。

流量特性會區分流量流向。例如:

  • 在沒有壅塞的情況下,系統會將路況視為正常現象,並以正常速度放送流量。
  • 即將在尖峰時段處理服務,流量密度會提高,導致流量變慢,並產生中等車流量。
  • 在串場廣告流量的瞬間中,流入水流會遇到停頓,導致交通壅塞。

交通壅塞

設定 TRAFFIC_UNAWARE 轉送偏好設定時,系統不會將目前的路況納入考量以計算路徑。這個轉送偏好設定提供最短回應延遲 (系統以最快的速度傳回回應)。

預設設定為 TRAFFIC_UNAWARE

在回應中:

  • 延展型文字廣告包含在 duration 回應屬性中。

  • durationstaticDuration 回應屬性含有相同的值。

如果您希望回應傳回最快的速度,且概略的轉送詳細資料就足夠,請使用此轉送偏好設定。

交通壅塞

設定 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_AWARETRAFFIC_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_QUALITYOVERVIEW (預設)。使用 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",
  ...
}