沿路線搜尋總覽
下列 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 點是搜尋回應中傳回的地點:
如果結果中的每個地點都有相關資訊,回應就會包含從路線起點到該地點的旅行時間和距離。
根據預設,系統會使用 Routes API 中的 TRAFFIC_UNAWARE
選項計算行程時間和距離。您也可以選擇在計算時納入即時路況 TRAFFIC_AWARE_OPTIMAL
或延遲時間較短的即時路況 TRAFFIC_AWARE
。
關於路線、路段和路線控點
路線是由多個元件組成,由 Routes API 計算得出:
路徑包含下列元件:
- 路線控點:如要計算路線,您至少要指定起點和目的地的位置。您可以在路徑上將這些位置定義為中途點。中繼路線控點是起點和目的地之間的位置,您希望路線經過這些位置。
-
路線:從起點路線控點出發,途經所有中途路線控點,最後抵達目的地路線控點的完整行程。路線包含一或多個路段。
將路線傳遞至文字搜尋時,請傳遞 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) 之間的時間差:
繞道路線距離是原始行程 (從起點到目的地) 和新行程 (從起點到目的地途經 A) 之間的距離差異: