Route

包含路線,其中包含一系列連接起點、終點和中間路線控點的相連路段。

JSON 表示法
{
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "optimizedIntermediateWaypointIndex": [
    integer
  ]
}
欄位
legs[]

object (RouteLeg)

組成路線的航段 (路線控點之間的路徑區段)。每個路段皆對應至兩個非 via 路線控點之間的行程。舉例來說,沒有中繼路線控點的路線只有一個路段。路線若包含一個非 via 的中繼路線控點,則有兩個路段。包含一個 via 中繼路線控點的路線只有一個路段。路段的順序會符合從 originintermediatesdestination 的路線控點順序。

distanceMeters

integer

路線的移動距離 (以公尺為單位)。

duration

string (Duration format)

導航路線所需時間。如果將 routingPreference 設為 TRAFFIC_UNAWARE,這個值會與 staticDuration 相同。如果您將 routingPreference 設為 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL,系統在計算這個值時會將路況納入考量。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

staticDuration

string (Duration format)

在不考量路況的情況下行經路線的時間長度。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

polyline

object (Polyline)

整體路線折線。此折線將是所有 legs 的合併折線。

description

string

路線的說明。

warnings[]

string

顯示路線時要顯示的警告陣列。

viewport

object (Viewport)

折線的可視區域定界框。

travelAdvisory

object (RouteTravelAdvisory)

路線的其他資訊。

optimizedIntermediateWaypointIndex[]

integer

如果 ComputeRoutesRequest.optimize_waypoint_order 設為 true,這個欄位會包含最佳化中繼路線控點的最佳化順序。如果沒有,則這個欄位會留空。舉例來說,假設輸入內容為 Origin: LA;中級:達拉斯、邦哥爾、鳳凰城;目的地:紐約;而最佳化的中繼路線控點順序為:鳳凰城、達拉斯、Bangor。然後,這個欄位會包含 [2, 0, 1] 值。第一個中繼路線控點的索引從 0 開始。

RouteLeg

封裝非 via 路線控點之間的線段。

JSON 表示法
{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  }
}
欄位
distanceMeters

integer

路線路段的移動距離 (以公尺為單位)。

duration

string (Duration format)

瀏覽路段所需的時間長度。如果 route_preference 設為 TRAFFIC_UNAWARE,則這個值與 staticDuration 相同。如果 route_preferenceTRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL,系統在計算這個值時會將路況納入考量。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

staticDuration

string (Duration format)

行經路段的時間長度,不將路況納入考量。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

polyline

object (Polyline)

這個航段的整體折線。包括每個 step 的折線。

startLocation

object (Location)

這個路段的起點。這可能與提供的 origin 不同。舉例來說,如果提供的 origin 不位於道路附近,這是道路的某個點。

endLocation

object (Location)

這個路段的終點。這可能與提供的 destination 不同。舉例來說,如果提供的 destination 不位於道路附近,這是道路的某個點。

steps[]

object (RouteLegStep)

代表這個路段中路段的步驟陣列。每個步驟都代表一個導覽指示。

travelAdvisory

object (RouteLegTravelAdvisory)

封裝需告知使用者的其他資訊,例如路線路段上可能的交通區域限制等。

折線

封裝編碼折線。

JSON 表示法
{

  // Union field polyline_type can be only one of the following:
  "encodedPolyline": string,
  "geoJsonLinestring": {
    object
  }
  // End of list of possible types for union field polyline_type.
}
欄位
聯集欄位 polyline_type。封裝折線的類型。預設為 encoded_polyline。polyline_type 只能是下列其中一項:
encodedPolyline

string

使用折線編碼演算法的折線字串編碼

geoJsonLinestring

object (Struct format)

使用 GeoJSON LineString 格式指定折線

RouteLegStep

封裝 RouteLeg 的區段。步驟對應單一導覽指示。路線路段包含步數。

JSON 表示法
{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  },
  "travelAdvisory": {
    object (RouteLegStepTravelAdvisory)
  }
}
欄位
distanceMeters

integer

這個步驟的移動距離 (以公尺為單位)。在某些情況下,這個欄位可能沒有值。

staticDuration

string (Duration format)

在不考量路況的情況下,通過此步驟所需的時間。在某些情況下,這個欄位可能沒有值。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

polyline

object (Polyline)

與這個步驟相關聯的折線。

startLocation

object (Location)

這個步驟的開始位置。

endLocation

object (Location)

這個步驟的結束位置。

navigationInstruction

object (NavigationInstruction)

導航指示。

travelAdvisory

object (RouteLegStepTravelAdvisory)

封裝應告知使用者的其他相關資訊,例如腿部步驟可能出現的交通區域限制。

RouteLegStepTravelAdvisory

封裝應告知使用者的其他相關資訊,例如腿部步驟可能出現的交通區域限制。

JSON 表示法
{
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
欄位
speedReadingIntervals[]

object (SpeedReadingInterval)

速度讀取間隔,詳細說明交通密度。適用於 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 轉送偏好設定時段涵蓋 RouteLegStep 的完整折線,但不重疊。指定間隔的開始時間與前一個間隔的端點相同。

範例:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speedReadingIntervals: [A,C), [C,D), [D,G).

RouteLegTravelAdvisory

封裝需告知使用者的其他資訊,例如路線路段上可能的交通區域限制等。

JSON 表示法
{
  "tollInfo": {
    object (TollInfo)
  },
  "speedReadingIntervals": [
    {
      object (SpeedReadingInterval)
    }
  ]
}
欄位
tollInfo

object (TollInfo)

封裝特定 RouteLeg 上收費路段的資訊。這個欄位只有在 RouteLeg 上會有收費站時,才會填入這個欄位。如果已設定這個欄位,但預估價格子欄位未填入值,則道路應該會包含收費路段,但不顯示預估價格。如果沒有這個欄位,RouteLeg 上就不會有任何收費站。

speedReadingIntervals[]

object (SpeedReadingInterval)

速度讀取間隔,詳細說明交通密度。適用於 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL 轉送偏好設定間隔會涵蓋 RouteLg 的整條折線沒有重疊。指定間隔的開始時間與前一個間隔的端點相同。

範例:

polyline: A ---- B ---- C ---- D ---- E ---- F ---- G
speedReadingIntervals: [A,C), [C,D), [D,G).