指定是否要納入流量資料,以及如何加入

您選取的流量偏好設定可在路線詳細資料的準確度與要求效能之間取得平衡。提出要求時,建議您衡量是否應盡可能傳回最準確的結果,或是盡快傳回結果。Routes API 提供的選項可讓您控制回應資料的品質與回應延遲時間。

設定流量資料層級

Routes API 提供 RoutingPreference (REST) 和 RoutingPreference (gRPC),可讓您指定計算路徑的轉送偏好設定。這些偏好設定與將流量條件納入路徑計算的程度有所不同。每個轉送偏好設定都會在路徑品質、預估預計到達時間和回應延遲時間方面產生不同程度的結果。

路況條件是流量速率的特徵。例如:

  • 沒有壅塞時,系統會將路況視為正常,而流量會以正常的無阻速度傳輸。
  • 尖峰時段接近尖峰時,交通密度會導致流量降低,導致流量降低至中等路況。
  • 從串場廣告到包覆式流量中,流量速率會急速下降至停滯,因此會產生巨大的路況。

不知道流量

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

預設設定為「TRAFFIC_UNAWARE」。

在回應中:

  • 預計到達時間位於 duration 回應屬性中。

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

如果您想以最快的速度傳回回應,請使用這項轉送偏好設定,且近似的路線詳細資料已足夠。

交通監測

設定 TRAFFIC_AWARE 轉送偏好設定時,系統會根據目前的路況來計算路徑。因此,路線和路線詳細資料會更能準確反映實際情況。資料品質增加會降低迴應延遲,因此系統會套用效能最佳化來減少延遲時間。

在回應中:

  • 將即時流量納入考量的預計到達時間則包含在 duration 回應屬性中。

  • staticDuration 回應屬性包含行經路線的時間長度,不會將路況納入考量。

如果需要比 TRAFFIC_UNAWARE 更準確的路徑詳細資料,但您並不介意傳回回應延遲時間適度增加的情況,請使用這個轉送偏好設定。

車流量監測最佳

當您設定 TRAFFIC_AWARE_OPTIMAL 轉送偏好設定時,系統會依據目前的路況來計算路徑,但不會套用效能最佳化設定。在這個模式下,伺服器會更全面地搜尋路網,以找出最佳路徑。

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

這個選項與 Compute Route Matrix 搭配使用時,要求中的元素數量 (起點數 × 目的地數量) 不得超過 100。如要進一步瞭解 Compute Route Matrix 限制,請參閱 Compute 路徑矩陣

在回應中:

  • 將即時流量納入考量的預計到達時間則包含在 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",
  ...
}