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

一般而言,當使用者開車前往搜尋點 (POI) 時,實際上必須導航到鄰近位置,例如停車場或存取點。為駕駛必須前往機場或購物中心的圖片。前往機場時,駕駛人試圖前往航廈或下車地點,而非機場複合式的中心。同樣地,購物中心旁邊的停車場對有汽車的使用者也可能會更適合。在這種情況下,請在開發應用程式或服務來引導駕駛人時,先找出他們會前往的地點,然後提供駕駛員選擇前往的地點。這不僅能讓您為客戶提供更優質的服務,也能運用 Google 地圖平台提供的資料,輕鬆巧妙的開發工作,透過實際時間展現您重視客戶的時間。

[System Context] 高階導航系統
透過車輛將駕駛引導至特定地點時涉及的系統經過簡化的檢視畫面
高階系統圖表

我們會說明如何依序或組合使用 Places API 和 Directions API,在目的地旁找出停車正確位置。這項解決方案旨在消除不確定性和多次互動記錄,以便在更接近終點時駕駛停車地點。接著來看看兩個範例,瞭解如何實作這些情況。

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

請務必選擇未直接接通該道路旁的地點,以便個別擷取路線、位於巴黎的「聖達梅」,並使用「Gare de l’Est」火車站做為「起點」 (48.87697775149635, 2.359224590675)。

東部省

駕駛人在聖母院北部約 16 分鐘的路口離開車站。聖母院 (Notre Dame) 是名聞遐邇的旅遊景點,坐落於可通往橋樑的島嶼上,島上部分設有單行道,附近沒有大型停車場,因此這應該是個有趣的挑戰。

Places API 要求

這個 Places API 要求範例是使用「text search」尋找 Notre Dame。詳情請參閱開發人員說明文件。這些範例中的「YOUR_KEY」是您在 Google Cloud 控制台中啟用的 Google 地圖平台地點介面集和 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,
                },
  ...

如您所見,這些座標其實是聖母院。

Notre Dame 相片
地圖上有聖母院

身為開發人員或服務供應商,最好自動提示駕駛人「在 Notre Dame 附近尋找停車位」。使用者的體驗會因裝置和螢幕而異,不過如果短時間內消失,不妨考慮顯示短暫的彈出式視窗文字。如要在聖母院附近尋找停車場,請執行 Places API 文字搜尋,並輸入「parking」和半徑「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 要求

如要尋找從車站到鄰近聖母院 (Notre Dame) 的停車場路線,您必須提出 Directions API 要求。只要設定出發地和目的地參數即可。請參閱開發人員說明文件,瞭解其他做法。

https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY

Direction API 回應通常包含多個路線建議。每條路線都包含多個「路段」,且包含多個「步數」,顯示行進的距離和座標。如要找出可供車輛抵達的最終座標,請在所選路線中,使用最後一個航段的「end_location」欄位。

這個地點似乎不是第一個選擇,但當您查看地圖或 Google 街景服務時,您會發現從聖母院只剩 6 到 7 分鐘的步行距離內,這個地點只差一小段時間。

從停車場通往聖母院的步行路線

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

範例 1 的摘要

如您所見,如要尋找汽車停車位,只需進行幾次 API 呼叫,然後向駕駛顯示建議即可。當使用者不在單行道上開著,或嘗試尋找在人聲鼎沸的觀光景點中下車地點,能節省許多寶貴時間。以下摘要列出我們提出的下列 API 要求:

  • 用於尋找 Notre Dame 座標的 Places API 要求
  • 發出 Places API 要求,在座標方圓 300 公尺內尋找停車區域
  • 尋找前往停車區域的路線的 Directions API 要求

範例 2:引導至大型機場的航廈

地圖上的希斯洛機場
再來看看另一個例子:駕駛人試圖觸及有多個地點、搜尋點或潛在下車點的大型區域。司機即將從英國溫布利體育館出發 (51.557263604707224, -0.2794575145680608),並嘗試前往倫敦希斯洛機場第 5 航廈。一般而言,使用者只要開始輸入「Heathrow」,就能從前 2 或 3 個結果中擇一輸入正確的結果 (如果看起來是正確的),在選取的結果中,如果讀取「type」欄位值,即可瞭解該地點是機場。相關類型請見這裡

  "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

上述查詢可提供這些航線端子及各航廈的下車地點清單。結果清單中會顯示「倫敦希斯洛機場第 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 要求
  • 取得前往航廈 5 的 Directions API 要求

結論

如您所見,為乘車客戶提供優質服務,開發流程中的規模其實不大,讓您可以輕鬆展現您對客戶需求的看法。

為了進行開發,您可以使用許多可用程式庫和工具為客戶打造服務。查看我們公開的 Google 地圖平台 GitHub 存放區

下一步

主體作者

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