一般而言,當使用者開車前往搜尋點 (POI) 時,他們實際上需要前往附近地點 (例如停車場或存取點) 才能瀏覽。請想像駕駛必須前往機場或購物中心。前往機場時,司機嘗試抵達航廈或下車地點,而不是機場複合物中心。同樣地,如果使用者有車,購物中心旁的停車場可能會是更好的選擇。在這種情況下,如要開發用於引導駕駛的應用程式或服務,請先找出他們前往的地點,再為司機所在位置附近的目的地提供目的地。如此一來,您就能輕鬆運用 Google 地圖平台提供的位置資料,為客戶提供更優質的服務,並證明您重視他們的時間寶貴。
我們會說明如何依序或組合使用 Places API 和 Directions API,找出適合放置您目的地附近的公園位置。這項解決方案旨在消除不確定度和多次互動,以便找到停車地點,並在接近終點時行駛。讓我們來看看以下兩個範例,進一步瞭解如何實作這些案例。
範例 1 - 沒有停車場的觀光景點
選擇未直接連結到道路的地點,以便單獨擷取路線;「目的地」為巴黎的「Notre Dame」,並以「Gare de l’Est」火車站做為起點,然後使用 Gare de l’Est 車站 (48.87697775149635, 2.359224780675)。
司機會從車站出發,大約在離開車站後 16 分鐘抵達巴黎聖母院。聖母院是位於島上的熱門景點,可透過橋樑抵達,但附近有部分單行道,且沒有大型停車場,因此這應該會是一項有趣的挑戰。
Places API 要求
此 Places API 要求範例是使用「text search」來尋找 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, }, ...
如您所見,座標確實指向聖母院。
|
|
開發人員或服務供應商不妨自動提示駕駛人「想在巴黎聖母院附近停車嗎?」。使用者體驗會因裝置和螢幕而異,但在這種情況下,不妨考慮使用短時間後就會消失的輕量彈出式文字。如要尋找巴黎聖母院附近的停車位,請使用 Places API 文字搜尋,並設定類型為「parking」,半徑為「300」的參數。此範例會將結果調整至聖母院 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 要求
如要尋找從車站到靠近聖母院 (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 分鐘,距離聖母院約 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 地圖平台解決方案工程師