沿路線搜尋功能總覽

下列 Places (新版) API 提供沿途搜尋功能:

  • 僅限 Text Search (新版):搜尋預先定義行程路線沿途的地點。
  • Text Search (新版) 和 Nearby Search (新版):從指定的路線起點位置,計算到搜尋結果中每個地點的路線摘要。
  • 僅限文字搜尋 (新版):計算預先定義行程路線上每個地點的路線摘要。

沿路線搜尋

您可以使用 Routes API 計算兩個地點之間的行程路線。Routes API 可計算汽車、自行車、雙輪車、大眾運輸系統或步行路線。

Text Search (新版) 可讓您使用這條計算出的路線,沿途搜尋。使用這個選項時,您可以將 Routes API 預先計算的路線傳遞至 Text Search (新版) 要求。回覆內容會包含符合搜尋條件,且位於指定路線附近的景點。

沿路線搜尋與使用 locationRestriction 或 locationBias 要求選項來調整搜尋結果類似。locationRestriction 會傳回可視區域邊界內的搜尋結果,而 locationBias 則可能會傳回可視區域外的搜尋結果。不過,locationBias 和 locationRestriction 選項可讓您指定區域,藉此調整搜尋結果,而文字搜尋中的沿路線搜尋功能也可調整搜尋結果,納入從路線起點到路線目的地的繞道時間最短者。您可以搭配使用 locationBias 或 locationRestriction 和折線,調整搜尋結果的偏好設定。

舉例來說,請參考 Routes API 計算的路線,從起點 (在 Routes API 中稱為路線控點) 到目的地:

從出發地路線控點到目的地的路線,以及搜尋結果。

沿途搜尋時,系統會優先傳回路線附近的地點,並盡量縮短從起點到目的地的繞路時間。在本例中,A、B 和 C 點是搜尋傳回的地點。

計算路徑摘要

Text Search (新版) 和 Nearby Search (新版) 可根據要求中指定的路線起點位置,計算回應中每個地點的路線摘要,也就是時間和距離。指定路線起點後,回應不僅會包含符合搜尋條件的地點清單,還會顯示從路線起點到每個地點的行程時間和距離。

在下圖中,A、B 和 C 點是搜尋回應中傳回的地點:

點 A、B 和 C 是搜尋回應中傳回的地點。

如果結果中的每個地點都有相關資訊,回應就會包含從路線起點到該地點的旅行時間和距離。

根據預設,系統會使用 Routes API 中的 TRAFFIC_UNAWARE 選項計算車程時間和距離。您可以選擇設定路線偏好設定,在計算時將即時路況 TRAFFIC_AWARE_OPTIMAL 或延遲時間較短的即時路況 TRAFFIC_AWARE 納入考量。

關於路線、路段和路線控點

Routes API 計算出的路線由多個元件組成:

組成路徑的元件。

路徑包含下列元件:

  • Waypoint:如要計算路線,至少要指定起點和目的地的位置。您可以在路線上將這些地點定義為中途點。中繼路線控點是指起點和目的地之間的地點,您希望路線經過這些地點。
  • 路線:從起點路線控點出發,途經所有中途路線控點,最後抵達目的地路線控點的完整行程。路線包含一或多個路段。

    將路線傳遞至 Text Search 時,請傳遞 Routes API 傳回的路線編碼折線。編碼折線是經緯度點的編碼清單,可讓您將路線的折線表示為字串。

  • 路段:路線中一個路線控點的路徑,到路線中的下一個路線控點的路徑。每個路段都包含一或多個獨立的步驟。

    路線包含從每個路線控點到下一個路線控點的路段。舉例來說,如果路線包含單一起點路線控點和單一目的地路線控點,則路線只包含一個路段。

    在起點和目的地之間,您為路線新增的每個額外中途點 (稱為「中途」中途點),API 都會新增一個獨立路段。

如要進一步瞭解路線和路線計算,請參閱 Routes API。

透過沿途搜尋功能計算路線摘要

您可以將路線摘要計算結果與沿途搜尋結合。 在本例中,「Text Search (新版)」會在回應中傳回每個地點的旅行時間和距離,以及從每個地點到路線最終目的地的距離。這項計算會提供行程時間和距離,假設您從指定路線繞道前往搜尋結果中的地點,然後繼續前往最終目的地。

舉例來說,假設 Routes API 計算出從起點到目的地的路線如下。將這條路徑連同搜尋條件一併傳遞至 Text Search (New) API。

從出發地路線控點到目的地的路線,並繞道前往搜尋結果。

在本例中,地點 A 是 Text Search (新版) 傳回的搜尋結果。對於回應中的每個地點,搜尋結果都會包含繞道前往該地點所需的距離和時間,也就是兩段行程:

  • 第一個路段包含從路線起點到地點的旅行時間和距離。在本例中,是從起點到地點 A。
  • 第二個路段包含從地點到路線目的地的旅行時間和距離。在本範例中,從 A 到目的地。

然後根據回應中的資訊,計算繞道路線的所需時間和距離,其中:

  • \(t_{OD}\) 是從出發地到目的地的行程時間, \(s_{OD}\) 是從出發地到目的地的行程距離
  • \(t_{OA}\) 是從起點到 A 的行程時間; \(s_{OA}\) 是從起點到 A 的行程距離
  • \(t_{AD}\) 是從 A 到目的地的行程時間; \(s_{AD}\) 是從 A 到目的地的行程距離

繞道時間是時間差,介於原始行程 (從起點到目的地) 和新行程 (從起點到目的地途經 A):

$$ t_{detour} = t_{OA} + t_{AD} - t_{OD} $$

繞道路線距離是指原始行程 (從起點到目的地) 和新行程 (從起點到目的地途經 A) 之間的距離差異:

$$ s_{detour} = s_{OA} + s_{AD} - s_{OD} $$