前往導航點

Navigation SDK for Android 提供更完善的方式來指定路線控點或導航點,可提供更準確的路線和更優質的抵達體驗,特別是針對有多個入口或特定導航點的目的地。您可以使用 navigationPointToken 規劃前往精確位置的路線,這是一種字串,可編碼位置和額外的路線情境。您也可以將經緯度座標與地點 ID 結合,提供更多背景資訊。

背景

在 7.4 版之前,您可以使用經緯度座標「或」地點 ID 定義 Waypoint。雖然有時有效,但僅根據經緯度規劃路線,有時可能會導致下車或上車地點不理想,尤其是大型場地、公園或有多個入口的建築物。結果可能會貼齊最近的路段,但這不一定是最方便或正確的導航點。

加強版路線控點選項可提供更多背景資訊,解決這個問題。

使用導航點權杖

如要精確規劃前往特定導航點 (例如入口、裝卸區或指定上車區) 的路線,可以使用 navigationPointToken。呼叫 Geocoding API 的 destinations 方法,即可取得這個權杖。代表與地點相關聯的特定可規劃路線導航點。

如要指定導航點權杖,請按照下列步驟操作:

  1. 從 Geocoding API 回應的 SearchDestinations 方法取得 navigationPointToken。
  2. 使用建構工具中的 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 中的導航點權杖和路線權杖,請參閱「指定路線位置」和「取得路線權杖」。如要瞭解如何使用路線權杖規劃路線,請參閱「規劃路線」。

下圖顯示共乘或外送應用程式如何搭配使用導航點權杖和路線權杖。從 8.1 版開始,司機應用程式在步驟 7 只會將路線權杖傳遞至 Navigation SDK。

共乘或外送用途圖表
共乘或外送用途圖表

結合地點 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 距離經緯度座標太遠,則不會顯示