Navigation SDK for Android 提供更完善的方式來指定路線控點或導航點,可提供更準確的路線和更優質的抵達體驗,特別是針對有多個入口或特定導航點的目的地。您可以使用 navigationPointToken 規劃前往精確位置的路線,這是一種字串,可對位置和額外路線情境進行編碼。您也可以將經緯度座標與地點 ID 結合,提供更多背景資訊。
背景
在 7.4 版之前,您可以使用經緯度座標「或」地點 ID 定義 Waypoint。雖然有時有效,但僅根據經緯度規劃路線,有時可能會導致下車或上車地點不理想,尤其是大型場地、公園或有多個入口的建築物。結果可能會貼齊最近的路段,但這不一定是最方便或正確的導航點。
加強版路線控點選項可提供更多背景資訊,解決這個問題。
使用導航點權杖
如要精確規劃前往特定導航點 (例如入口、卸貨區或指定上車區) 的路線,可以使用 navigationPointToken。呼叫 Geocoding API 的 destinations 方法,即可取得這個權杖。代表與地點相關聯的特定可規劃路線導航點。
如要指定導航點權杖,請按照下列步驟操作:
- 從 Geocoding API 的 Destinations 方法回應中取得
navigationPointToken。 - 使用建構工具中的
setNavigationPointToken()方法建立Waypoint。
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
使用導航點權杖和路線權杖
您可以透過 Geocoding API 擷取導航點權杖,並從 Routes API 擷取路線權杖,然後將這兩個權杖傳遞至 Navigation SDK。這項功能適用於共乘或外送等情境,您可以使用 Routes API 計算行程價格,並取得精確的導航點權杖。
有了路徑權杖,Navigation SDK 就能根據您用來計算價格的相同路徑開始導航。這可降低行程路線過長或過短的風險,避免「價格衝擊」。
如要進一步瞭解如何使用導航點權杖指定位置,以及建立路線權杖,請參閱 Routes API 說明文件。請參閱「規劃路線」,瞭解如何使用路線權杖規劃路線。
下圖顯示共乘或外送應用程式如何搭配使用導航點權杖和路線權杖:
結合地點 ID 和經緯度
自 7.4 版起,建立 Waypoint 時,您可以同時提供地點 ID 和經緯度座標。如要指定精確點 (經緯度),同時提供整體地點的背景資訊 (地點 ID),這個方法就很實用。這樣一來,Navigation SDK 就能醒目標示目的地建築物,或顯示與地點 ID 相關的附近搜尋點,提供更豐富的抵達體驗。
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
注意事項
如果同時提供 placeId 和 latlng:
- 這條路徑主要指定
latlng。 placeId會做為情境資訊,提升抵達體驗。- 備用:如果 SDK 判定提供的
placeId對應的功能與指定的latlng相差太遠,則會忽略placeId。在這種情況下,系統只會規劃前往latlng的路線,不會提供特定地點的抵達體驗強化功能。
有效路線控點設定摘要
| 方法 | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
轉送行為 | 目的地醒目顯示 |
|---|---|---|---|---|---|
| 僅限經緯度座標 | set | 缺席 | 缺席 | 導向最接近指定座標的路段 | 如果能高度確信目的地,就會顯示 |
| 僅限地點 ID | 缺席 | set | 缺席 | 前往地點 ID 的預設導航點 | 出發地點 ID |
| 僅限導航點權杖 | 缺席 | 缺席 | set | 前往權杖代表的精確導航點 | 原始 Geocoding API 的目的地方法要求中定義的目的地 |
| 經緯度座標和地點 ID 組合 | set | set | 缺席 | 導向最接近指定座標的路段 | 從地點 ID 取得,但如果地點 ID 與經緯度座標相距太遠,則不會顯示 |