這份文件有新版本,其中提供新版 Places API 和 Routes API 的使用範例。
一般來說,當使用者開車前往某個搜尋點 (POI) 時,他們實際上需要導航至附近位置,例如停車場或存取點。想像一下,司機需要前往機場或購物中心。前往機場時,司機會嘗試前往航廈或下車地點,而不是機場建築群的中心。同樣地,如果使用者有車,購物中心旁的停車場可能會是更好的選擇。在這種情況下,開發應用程式或服務來引導駕駛員時,請先找出他們要前往的地點,然後提供駕駛員該地附近的替代目的地。您可以透過這種方法,運用 Google 地圖平台提供的位置資料,以小而精明的開發工作,為客戶提供更優質的服務,並展現您重視客戶的時間。
我們將說明如何依序或同時使用 Places API 和 Directions API,找出最適合在目的地附近停車的位置。這個解決方案旨在消除不確定性和多次互動,以便在行駛至最終目的地時,找到停車位。以下將詳細說明這兩種情況的實作方式。
範例 1:沒有停車場的觀光景點
請選擇一個與路邊無直接連結的地點,以便分別擷取路線,目的地是巴黎的聖母院,起點則是Gare de l’Est 火車站 (48.87697775149635, 2.3592247806755564)。
司機會從車站出發,大約在離開車站後 16 分鐘抵達巴黎聖母院。聖母院是位於島上的著名觀光景點,可透過橋樑抵達,但附近有部分單行道,且沒有大型停車場,因此這應該是一項有趣的挑戰。
Places API 要求
這個 Places API 要求範例使用「文字搜尋」功能尋找 Notre Dame。詳情請參閱開發人員說明文件。這些範例中的「YOUR_KEY」是您在 Google Cloud 控制台中啟用的 Google 地圖平台 Places API 和 Directions API 的 API 金鑰。如需更詳細的說明,請參閱「開始使用 Google 地圖平台」說明文件。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014®ion=fr&key=YOUR_KEY
上述要求的回應會提供下列緯度和經度座標:
"results" : [ { "formatted_address" : "Notre Dame, Paris", "geometry" : { "location" : { "lat" : 48.8527288, }, ...
如你所見,座標確實指向聖母院。
|
|
開發人員或服務供應商不妨自動提示駕駛人「想在 Notre Dame 附近停車嗎?」。使用者體驗會因裝置和螢幕而異,但在這種情況下,不妨考慮使用短時間後就會消失的輕量彈出式文字。如要尋找位於 Notre Dame 附近的停車位,請使用 Places API 文字搜尋,並設定類型為「parking」,半徑為「300」的參數。這個範例會將結果偏向距離 Notre Dame 300 公尺內的停車區。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635®ion=fr&type=parking&radius=300&key=YOUR_KEY
第一個結果是「Parking Saemes Maubert-Lagrange」,位於 48.850591、2.3486436。我們會在下一個部分使用這個位置,執行 Directions API 要求。
Directions API 要求
如要尋找從車站到巴黎聖母院附近停車區的路線,您需要發出 Directions API 要求。只要設定來源和目的地參數即可。如需其他選項,請參閱開發人員說明文件。
https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY
方向 API 回應通常包含多個路線建議。每條路線都包含多個「路段」,而每個路段又包含多個「步驟」,顯示行程距離和座標。如要找出可透過車輛抵達的最終座標,請使用所選路線最後一站的最後步驟中「end_location」欄位。
這個地點可能不是第一個選擇,但查看地圖或 Google 街景時,你會發現這個地點距離巴黎聖母院只有 6 到 7 分鐘的步行路程,非常近。
從停車區步行至巴黎聖母院的路線
範例 1 的摘要
如您所見,尋找汽車停車區只需要幾個 API 呼叫,並向駕駛人顯示建議。這樣一來,使用者就不必在單行道上兜圈子,也不必在擁擠的觀光景點尋找停車位,因此可節省時間。以下是我們執行的 API 要求摘要:
- 使用 Places API 要求找出 Notre Dame 的座標
- 透過 Places API 要求找出位於這些座標 300 公尺範圍內的停車區
- 使用 Directions API 要求找出前往停車區的路線
範例 2:引導使用者前往大型機場的航廈
"types" : [ "airport", "point_of_interest", "establishment" ],
不過,任何曾經造訪大型機場的人都知道,如果您不小心抵達錯誤地點,在航站之間轉乘需要花費大量時間。在這種情況下,由於搜尋結果的類型是「機場」,因此自動追蹤查詢很有用,可使用倫敦希斯洛機場的位置 (51.47016927594547, -0.45432767852489075) 搜尋「航站」。在這個範例中,您也可以看到可選的搜尋半徑限制為 3000 公尺。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075®ion=gb&key=YOUR_KEY&radius=3000
上述查詢會列出車站清單,以及這些車站的個別下車點。在結果清單中,我們可以找到「倫敦希斯洛機場第 5 航廈」及其地點 ID:
"place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",
我們可以使用「place_id」參數,告訴 Directions API 我們要前往某個地點,而非某個任意座標。
https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY
同樣地,如同前一個範例,只要讀取 JSON 回應中的所有步驟,就能找到行程的最後部分,以及終點位置的經緯度座標 (51.47079979999999,-0.4896765)。
範例 2 的摘要
如同前述範例,開發人員只需付出很少的努力,就能為駕駛人提供更完善的導航服務,而且駕駛人節省的時間也相當容易評估。我們提出了以下要求:
- 尋找希斯洛機場的 Places API 要求
- Places API 要求,用於尋找靠近希斯洛機場座標的所有航廈
- 取得前往 5 號航站的路線的 Directions API 要求
結語
如您所見,為搭乘汽車的客戶提供優質服務所需的開發工作量相當少,而且您可以輕鬆展現您如何考量客戶的需求。
在開發方面,您可以使用許多可用的程式庫和工具,協助您為客戶建構服務。請參閱我們公開提供的 Google 地圖平台 GitHub 存放區。
後續行動
主要作者
Mikko Toivanen | Google 地圖平台解決方案工程師