Method: computeRoutes

在指定一組終端和中間路線控點後,傳回主要路線和可選的替代路線。

注意:這個方法需要您在輸入內容中指定回應欄位遮罩。您可以使用網址參數 $fieldsfields,或是使用 HTTP/gRPC 標頭 X-Goog-FieldMask 提供回應欄位遮罩 (請參閱可用的網址參數和標頭)。值是以半形逗號分隔的欄位路徑清單。請參閱詳細說明文件,瞭解如何建構欄位路徑

舉例來說,在這個方法中:

  • 所有可用欄位的欄位遮罩 (供手動檢查):X-Goog-FieldMask: *
  • 路線層級時間長度、距離和折線的欄位遮罩 (正式版設定範例):X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google 不建議您使用萬用字元 (*) 回應欄位遮罩,或是在頂層 (routes) 指定欄位遮罩,原因如下:

  • 只選取所需欄位有助於伺服器節省運算週期,讓我們能以更低的延遲時間傳回結果。
  • 只選取實際工作中所需的欄位,即可確保延遲時間穩定。我們日後可能會新增更多回應欄位,且這些新欄位可能需要額外的計算時間。如果您選取所有欄位,或是選取頂層的所有欄位,系統會自動將新增的任何欄位納入回應,因此可能會導致效能降低。
  • 只選取所需欄位,可縮小回應大小,進而提高網路傳輸量。

HTTP 要求

POST https://routespreferred.googleapis.com/v1:computeRoutes

這個網址使用 gRPC 轉碼語法。

要求主體

要求主體的資料會採用以下結構:

JSON 表示法
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
欄位
origin

object (Waypoint)

必要欄位。來源路線控點。

destination

object (Waypoint)

必要欄位。目的地路線控點。

intermediates[]

object (Waypoint)

選用設定。沿路 (不含終點) 的路線控點組合,用於停靠或經過。最多可支援 25 個中繼路線控點。

travelMode

enum (RouteTravelMode)

選用設定。指定交通方式。

routingPreference

enum (RoutingPreference)

選用設定。指定計算路線的方式。伺服器會嘗試使用所選轉送偏好設定來計算路徑。如果路由偏好設定導致錯誤或延遲時間過長,系統會傳回錯誤。只有在 travelModeDRIVETWO_WHEELER 時,才能指定這個選項,否則要求會失敗。

polylineQuality

enum (PolylineQuality)

選用設定。指定折線的品質偏好設定。

polylineEncoding

enum (PolylineEncoding)

選用設定。指定折線的偏好編碼。

departureTime

string (Timestamp format)

選用設定。出發時間。如果您未設定這個值,則預設值為您提出要求的時間。如果將這個值設為已發生的時間,要求就會失敗。

RFC3339 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。例如 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

computeAlternativeRoutes

boolean

選用設定。指定是否要計算路線以外的替代路線。對於含有中繼路線控點的要求,系統不會傳回替代路線。

routeModifiers

object (RouteModifiers)

選用設定。一組會影響路徑計算方式的條件。

languageCode

string

選用設定。BCP-47 語言代碼,例如「en-US」或「sr-Latn」。詳情請參閱「Unicode 語言代碼」。如需支援的語言清單,請參閱語言支援。如果您未提供這個值,系統會根據路線要求的位置推測顯示語言。

units

enum (Units)

選用設定。指定顯示欄位的測量單位。這包括 NavigationInstruction 中的 instruction 欄位。路線、路段、步行距離和時間的度量單位不會受到這個值的影響。如果您未提供這個值,系統會根據請求的位置推斷顯示單位。

optimizeWaypointOrder

boolean

如果 optWaypointOrder 設定為 true,系統會嘗試重新排序指定的中間路點,盡可能降低路線的整體成本。如果有任何中繼路點是透過路線控點傳送,要求就會失敗。使用 ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index 尋找新排序。如果 X-Goog-FieldMask 標頭未要求 routes.optimized_intermediate_waypoint_index,要求就會失敗。如果將 optimizeWaypointOrder 設為 false,ComputeRoutesResponse.optimized_intermediate_waypoint_index 就會空白。

回應主體

如果成功,回應主體會包含 ComputeRoutesResponse 的執行例項。

授權範圍

需要下列 OAuth 範圍:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

詳情請參閱 OAuth 2.0 總覽