在透過車輛導航前往地點時,創造最佳使用者體驗的提示

這份文件有新版,其中包含如何使用新版 Places API 和 Routes API 的範例。

一般來說,使用者開車前往搜尋點時,實際上需要導航到附近的停車場或出入口等位置。假設有位司機需要前往機場或購物中心。前往機場時,司機嘗試抵達的是航廈或下車地點,而非機場園區中心。同樣地,購物中心旁的停車場可能更適合開車的使用者。在這種情況下,開發應用程式或服務來引導駕駛人時,請先找出駕駛人要去的地點,然後提供該地點附近的選填目的地。只要運用 Google 地圖平台提供的位置資料,就能以少許的開發工作,為顧客提供更優質的服務,並展現您對顧客時間的重視。

[系統環境] 高階導航系統
簡化檢視系統,在引導駕駛人開車前往某個地點時會用到這些系統
高階系統圖

我們會說明如何依序或合併使用 Places API 和 Directions API,找出目的地附近的合適停車地點。這項解決方案旨在消除不確定性,並減少互動次數,讓駕駛人在接近目的地時,能順利找到停車位。讓我們詳細瞭解如何實作這兩種情況。

示例 1:沒有停車場的觀光景點

我們選擇的地點並未直接與路邊相連,因此必須另外擷取路線,目的地是巴黎的巴黎聖母院起點則是巴黎東站 (48.87697775149635, 2.3592247806755564)。

巴黎東站

司機從巴黎聖母院以北約 16 分鐘車程的車站出發,聖母院是島上著名的觀光景點,可透過橋樑抵達,但附近有幾條單行道,且沒有大型停車場,因此應該會是很有趣的挑戰。

Places API 要求

這個 Places API 要求範例使用「文字搜尋」功能尋找巴黎聖母院。詳情請參閱開發人員說明文件。這些範例中的「YOUR_KEY」是您在 Google Cloud 控制台中,為 Google 地圖平台 Places 和 Directions API 啟用的 API 金鑰。如需更詳細的說明,請參閱「開始使用 Google 地圖平台」一文。

https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014&region=fr&key=YOUR_KEY

上述要求的相關回應會提供下列經緯度座標:

  "results" : [
      {
        "formatted_address" : "Notre Dame, Paris",
        "geometry" : {
           "location" : {
               "lat" : 48.8527288,
                },
  ...

如您所見,座標確實指向巴黎聖母院。

巴黎聖母院相片
地圖上的巴黎聖母院

身為開發人員或服務供應商,建議自動提示駕駛人「尋找巴黎聖母院附近的停車位?」。使用者體驗會因裝置和螢幕而異,但建議考慮使用短時間後就會消失的細微彈出式文字。如要在巴黎聖母院附近尋找停車位,請使用 Places API 進行文字搜尋,並將類型設為「停車位」,半徑設為「300」。這個範例會將結果偏向巴黎聖母院 300 公尺內的停車區域。

https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635&region=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

Directions API 回應通常會包含多個路線建議。每條路線都包含多個「路段」,而每個路段又包含多個「步驟」,顯示旅行距離和座標。如要找出車輛可抵達的最終座標,請使用所選路徑中最後一段路程的最後一個步驟的「end_location」欄位。

這個地點可能不是首選,但查看地圖或 Google 街景服務後,你會發現這個地點距離巴黎聖母院很近,步行約 6 到 7 分鐘即可抵達。

從停車場到巴黎聖母院的步行路線

從停車區到巴黎聖母院的步行路線

範例 1 的摘要

如您所見,為車輛尋找停車區只需要幾次 API 呼叫,並向駕駛人顯示建議。這樣一來,使用者就不必在單行道上繞路,或是在擁擠的觀光景點尋找停車位,可節省許多時間。總結來說,我們發出了下列 API 要求:

  • 透過 Places API 要求尋找巴黎聖母院的座標
  • Places API 要求,在這些座標的 300 公尺內尋找停車區
  • 使用 Directions API 要求尋找停車區的路徑

示例 2 - 在大型機場引導前往航廈

地圖上的希斯洛機場
我們來看看另一個例子,假設駕駛人要前往的區域很大,有多個地點、興趣點或潛在下車地點。司機從英國溫布利球場 (51.557263604707224, -0.2794575145680608) 出發,目的地是倫敦希斯洛機場第 5 航廈。一般來說,使用者會開始輸入「希斯洛」,如果前 2 或 3 個結果看起來正確,他們通常會選擇其中一個。從所選結果中,您可以透過讀取「types」欄位值,瞭解該地點是機場。如需完整的類型清單,請參閱這篇文章

  "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&region=gb&key=YOUR_KEY&radius=3000

上述查詢會提供航廈清單,以及這些航廈的個別下車地點。在結果清單中,我們可以找到「London Heathrow Airport Terminal 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)。

希斯洛機場第 5 航廈

範例 2 摘要

如同先前的範例,為駕駛人提供更完善的指引,開發工作量非常小,但駕駛人節省的時間卻很容易計算。我們發出了下列要求:

  • 透過 Places API 要求尋找希斯洛機場
  • Places API 要求,用於尋找希斯洛機場座標附近的所有航廈
  • 傳送 Directions API 要求,取得前往第 5 航廈的路徑

結論

如您所見,為開車出遊的顧客提供優質服務所需的開發工作相當少,而且您能輕鬆展現自己如何考量顧客需求。

在開發方面,您可以使用許多程式庫和工具,協助為客戶建構服務。請參閱 Google 地圖平台公開提供的 GitHub 存放區

後續動作

主要作者

Mikko Toivanen | Google 地圖平台解決方案工程師