查看路徑回應

Routes API 計算路線時,會採用路線控點 您提供的設定參數接著,API 會傳回回應 包含 default 路徑和一或多個替代路徑。

根據 您需要的欄位:

如何在回應中加入這項資訊 請參閱這份說明文件
根據車輛的引擎類型,最省油或最節能的路線。 設定環保路徑
最多三個替代路徑 要求替代路線
整個路線、路線中每個路段及每個步驟的折線 要求路線折線
預估通行費,將任何過路費折扣納入考量 或是提供給駕駛人或車輛的票證 計算過路費
依語言代碼和測量單位 (英製或 指標)。 要求本地化值
如要將導覽說明的格式設為 HTML 文字字串,請在下列元素中加入 HTML_FORMATTED_NAVIGATION_INSTRUCTIONSextraComputations 額外運算

如需輸入選項的完整清單,請參閱可用的路線選項 和 「要求主體」

回覆功能即可為消費者提供所需資訊 以便根據他們的需求選取適當路徑

關於欄位遮罩

呼叫方法來計算路線時,必須指定欄位 會定義要在回應中傳回哪些欄位的遮罩。由於沒有 傳回的欄位預設清單如果省略此清單,則方法會傳回 錯誤。

本文件中的範例顯示的是整個回應物件,但不會擷取 欄位遮罩在正式環境中,回應會 只包含您在欄位遮罩中明確指定的欄位。

詳情請參閱選擇要傳回的資訊

關於顯示著作權

向使用者顯示結果時,您必須附上以下著作權聲明:

Powered by Google, ©YEAR Google

例如:

Powered by Google, ©2023 Google

關於路線、路段和步驟

在查看 Routes API 傳回的回應之前 應該瞭解路徑的組成元素:

路線、路段和步數。

您的回應可能包含每個路線元件的相關資訊:

  • 路線:從起點路線點到任何目的地的整趟行程 中繼路點到目的地路線控點路徑包含 或多段

  • 腿部:從一個路線點到下一個路線控點的路徑 路徑。每個航段包含一或多個獨立的步數

    路線包含從每個路點到下一個路線的獨立路段。 舉例來說,如果路線包含一個起點路點和 目的地路點,則路線包含單一航段對於每項 您在起點和目的地之後新增到路徑的其他路點 稱為中繼路線控點,API 會新增一個獨立的路段。

    API 不會為直通中繼路點新增航點。適用對象 例如,包含起點路點、直通式 中間的路線點,而目的地路點只包含 從起點到目的地的起點,並通過路點。如要 如需關於直通路線控點的資訊,請參閱 定義直通路線點

  • 步驟:路線路段上的單一指示,步數 路徑的不可分割單位。舉例來說,步驟可能表示「在主電源上開啟」 街道」)。

回覆內容

JSON 物件 代表 API 回應包含下列頂層屬性:

  • routes,類型元素的陣列 「Route」(路徑)routes 陣列包含 API 傳回的每條路線的一個元素。 陣列最多可包含五個元素:預設路徑、 環保路徑和最多三條替代路線

  • geocodingResults,類型元素的陣列 GeocodingResults。 要求中的每個位置 (出發地、目的地或中繼資訊) 路徑點) 指定為地址字串Plus Code。 API 會執行地點 ID 查詢此陣列的每個元素都包含 與地點對應的地點 ID。要求中的位置,指定為 地點 ID經緯度座標。 如果您已使用地點 ID 或經緯度指定所有地點 座標,系統就不會提供這個陣列。

  • fallbackInfo,類型為 FallbackInfo. 如果 API 無法從所有輸入屬性計算路徑, 或許就會改用不同的運算方式備用時 模式,這個欄位含有備用廣告的詳細資訊 回應。否則,系統會取消設定這個欄位。

回應會採用以下形式:

{
  // The routes array.
  "routes": [
    {
      object (Route)
    }
  ],
  // The place ID lookup results.
  "geocodingResults": [
    {
      object (GeocodedWaypoint)
    }
  ],
  // The fallback property.
  "fallbackInfo": {
    object (FallbackInfo)
  }
}

解密路徑陣列

回應會包含 routes 陣列,其中每個陣列元素都是類型 「Route」(路徑)。 每個陣列元素都代表從起點到目的地的整條路線。 API 一律傳回至少一條路徑,稱為預設路徑。

您可以要求其他路徑。如果要求 環保路徑,則陣列可以包含兩個元素: 預設路線和環保路徑或將「computeAlternativeRoutes」設為 要求中的 true,以便將回應加入最多三個替代路徑。

陣列中的每條路線都會以 routeLabels 陣列屬性識別:

說明
DEFAULT_ROUTE 識別預設路徑。
FUEL_EFFICIENT 用於識別環保路徑。
DEFAULT_ROUTE_ALTERNATE I 用於指定替代路線。

legs 陣列包含路線中每個路段的定義。剩餘的 distanceMetersdurationpolyline, 等屬性包含 整體路線的相關資訊:

{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "routeLabels": [string],
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  }
  "routeToken": string
}

受目前的行車狀況和其他因素影響,預設路線和 環保路徑可以相同在本例中,routeLabels 陣列 包含「DEFAULT_ROUTE」和「FUEL_EFFICIENT」標籤

{
  "routes": [
    {
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ],
     …
    }
  ]
}

瞭解腿部陣列

回應中的每個 route 都含有 legs 陣列,其中每個 legs 陣列 元素屬於 RouteLeg。 陣列中的各個路段分別定義從一個路點到下一個路點的路徑 沿著路線行駛路線至少要有一個路段。

legs 屬性包含 steps 陣列。其餘屬性,例如 distanceMetersdurationpolyline 則包含路段的相關資訊。

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

瞭解步數陣列

回應中的每個路段都包含 steps 陣列,其中每個 steps 陣列 元素屬於 RouteLegStep。 每個步驟都會對應到桌腳上的單一指示。一段一律包含 至少包含一個步驟

steps 陣列中的每個元素都包含 navigationInstruction 屬性,類型為 NavigationInstruction 其中包含步驟指示例如:

"navigationInstruction": {
  "maneuver": "TURN_LEFT",
  "instructions": "Turn left toward Frontage Rd"
}

instructions 可能包含步驟的其他資訊。例如:

"navigationInstruction": {
  "maneuver": "TURN_SLIGHT_LEFT",
  "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days"
}

步驟中的其他屬性會說明步驟的相關資訊,例如 如 distanceMetersdurationpolyline

{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  }
}

指定步驟操作說明的語言

API 會以當地語言傳迴路線資訊,音譯為 使用者可以視需要閱讀指令碼,同時觀察 語言。系統傳回地址元件時,一律會以相同語言傳回。

  • 使用 languageCode 參數 要求到 在支援的清單中,明確設定路線語言 語言。Google 通常會更新支援的 因此這份清單並不完整

  • 如果未提供指定語言的名稱,API 會使用 最接近的相符項目。

  • 指定語言會影響 API 選擇傳回以及傳回的順序。 地理編碼器會根據語言,以不同的方式解讀縮寫,例如 街道類型的縮寫,或可能在其中一個地區有效的同義詞 但沒有另一種語言以「utca」和「tér」為例 匈牙利的街道

瞭解 geocodingResults 陣列

要求中的每個位置 (出發地、目的地或中繼資訊) 路徑點) 指定為地址字串Plus Code; API 會嘗試找出最相關且擁有對應地點的位置 編號。該元件的每個元素 geocodingResults敬上 陣列包含 placeID 欄位 包含地點做為地點 ID,以及指定地點的 type 欄位 類型,例如 street_addresspremiseairport

geocodingResults 陣列包含三個欄位:

  • origin:如果指定為地址字串或 Plus code, 起點的地點 ID。否則,回應會省略此欄位。

  • destination:如果是地址字串或 Plus code, 目的地的地點 ID。否則,這個欄位會省略 回應。

  • intermediates:包含任何中繼位置 ID 的陣列 路線控點,指定為地址字串或 Plus Code。如果指定 由地點 ID 或緯度 回應中會省略經度座標。使用 以回應 intermediateWaypointRequestIndex 屬性來判斷 請求中的中繼路線控點與 回應。

,瞭解如何調查及移除這項存取權。
"geocodingResults": {
    "origin": {
        "geocoderStatus": {},
        "type": [
             enum (Type)
        ],
        "placeId": string
    },
    "destination": {
        "geocoderStatus": {},
        "type": [
            enum (Type)
        ],
        "placeId": string
    },
    "intermediates": [
        {
            "geocoderStatus": {},
            "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        },
        {
           "geocoderStatus": {},
           "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        }
    ]
}

瞭解本地化回應值

本地化回應值是額外的回應欄位 傳回的參數值的本地化文字。為 行程時間長度、距離與單位系統 (公製或英制)。你提出要求 透過欄位遮罩來本地化值,且可以指定 單位系統或使用 API 推測的值。詳情請參閱 LocalizedValues

舉例來說,如果您為德文 (de) 和英制代碼指定語言代碼 則結果會是 49889.7 的 distanceMeters 也提供本地化文字,提供德文和 英制單位,例如「31 Meile」。

以下是本地化值的內容示例:

{ "localized_values":
  {
    "distance": { "text": "31,0 Meile/n" },
    "duration": { "text": 38 Minuten}.
    "static_duration": { "text": 36 Minuten}.
  }
}

如果您未指定語言或單位系統,API 會推測出 和單位,方法如下:

  • ComputeRoutes 方法會推測位置和距離 與原始路線控點之間的單位數如果是美國的轉送要求 可推斷 en-US 語言和 IMPERIAL 單位。
  • ComputeRouteMatrix 方法預設為「en-US」語言 和 METRIC 單位