結合路線摘要與沿途搜尋功能
您可以將路線摘要計算與沿途搜尋結合使用。 在這種情況下,Text Search (新版) 會在回應中傳回前往每個地點的旅行時間和距離,以及從每個地點到路線最終目的地的旅行時間和距離。
如要使用「文字搜尋 (新版)」計算路徑摘要,並沿途搜尋:
-
使用 Routes API 計算路徑,在回應中傳回路徑折線。
-
使用
searchAlongRouteParameters.polyline.encodedPolyline
參數將路線折線傳遞至 Text Search (New),以便根據路線調整搜尋結果。回覆會顯示符合搜尋條件,且位於指定路線附近的景點。 -
在欄位遮罩中加入
routingSummaries
,讓回應包含routingSummaries
陣列。這個陣列包含從路徑起點到回應中每個地點的所需時間和距離。
您可以使用 APIs Explorer 傳送即時要求,熟悉 API 和 API 選項:
根據預設,文字搜尋 (新版) 會沿著整條路線執行搜尋:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food", "searchAlongRouteParameters": { "polyline": { "encodedPolyline": "ROUTE_POLYLINE" } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'
回應包含兩個陣列:places
陣列包含相符地點,而 routingSummaries
陣列則包含前往每個地點的所需時間和距離:
{ "places": [ { "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA", "priceLevel": "PRICE_LEVEL_INEXPENSIVE", "displayName": { "text": "Vegan Mob - Vegan BBQ and Soul Food", "languageCode": "en" } }, { "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Enjoy Vegetarian", "languageCode": "en" } }, … ], "routingSummaries": [ { "legs": [ { "duration": "285s", "distanceMeters": 1616 }, { "duration": "2466s", "distanceMeters": 58147 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0" }, { "legs": [ { "duration": "696s", "distanceMeters": 4704 }, { "duration": "2787s", "distanceMeters": 58901 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0" }, … ] }
針對 legs
陣列中的每個項目,Text Search (New) 會傳回「兩段式」行程時間:
-
第一個路段包含從出發地到該地點的旅行時間和距離。在本例中,結果中第一個地點與起點的距離和時間分別為 285 秒和 1616 公尺。
-
第二個路段包含從該地點到路線目的地的旅行時間和距離。在本例中,時間和距離分別為 2466 秒和 58147 公尺。
指定路線起點、交通方式和路線修飾符
您可以指定路線起點、交通方式、路線修飾符和路線偏好設定,修改搜尋和路線摘要計算結果。如要計算路線摘要,但未指定路線,則交通方式和路線修飾符的運作方式與「指定交通方式」主題所述相同。
根據預設,每個結果的第一段都包含從折線定義的原點到每個地點的距離。不過,您可以在要求中明確指定路由來源,藉此覆寫預設值。如要指定,所有回應的第一個路段會指定從指定路徑起點的距離和時間,並覆寫折線的起點。
在下一個範例中,您將路線起點指定為加州聖馬刁的座標,並指定避開收費路段,以及將結果數設為 5:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food", "maxResultCount": 5, "searchAlongRouteParameters": { "polyline": { "encodedPolyline": "ROUTE_POLYLINE" } }, "routingParameters": { "origin": { "latitude": 37.56617, "longitude": -122.30870 }, "travelMode":"DRIVE", "routeModifiers": { "avoidTolls": true } } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \ 'https://places.googleapis.com/v1/places:searchText'
下圖顯示的地圖包含路線折線、新的起點 (淺藍色圖釘) 和搜尋結果中的地點 (綠色圖釘)。請注意,所有結果都位於路線上,但 San Mateo 之後的結果:

試試看!
您可以使用 APIs Explorer 提出範例要求,熟悉 API 和 API 選項。
選取頁面右側的 API 圖示 api。
視需要編輯要求參數。
選取「Execute」按鈕。在對話方塊中,選擇要用來提出要求的帳戶。
在 APIs Explorer 面板中,選取全螢幕圖示 fullscreen 展開 APIs Explorer 視窗。