ナビゲーション ポイントへのルート

Android 向け Navigation SDK では、経由地を指定する方法が強化され、特に複数の入り口がある目的地や特定のナビゲーション ポイントがある目的地で、より正確なルート案内とより優れた到着体験を提供できるようになりました。navigationPointToken を使用するか、緯度と経度の座標をプレイス ID と組み合わせてコンテキストを追加することで、正確な位置にルートを設定できます。該当する場合は、目的地ハイライト表示機能が引き続き実行されます。

背景

v7.4 より前は、緯度と経度の座標またはプレイス ID を使用して Waypoint を定義できました。緯度と経度のみにルートを設定する方法は効果的な場合もありますが、特に大規模な会場、公園、複数の入り口がある建物では、最適な乗降場所にならないことがあります。結果は最も近い道路セグメントにスナップされるため、最も便利で正確なナビゲーション ポイントではない可能性があります。

強化された経由地オプションでは、より多くのコンテキストを提供できるようになり、この問題に対処しています。

ナビゲーション ポイント トークンを使用する

入り口、発送センター、指定の受け取り場所などの特定のナビゲーション ポイントへの最も正確なルート案内には、navigationPointToken を使用できます。このトークンは、Geocoding API の destinations メソッドを呼び出して取得します。これは、場所に関連付けられた特定のルーティング可能なナビゲーション ポイントを表します。

ナビゲーション ポイント トークンを指定するには:

  1. Geocoding API の Destinations メソッドのレスポンスから navigationPointToken を取得します。
  2. ビルダーの setNavigationPointToken() メソッドを使用して Waypoint を作成します。

注: setNavigationPointToken() を使用する場合、setLatLng() または setPlaceIdString() を同時に使用することはできません。これらのメソッドは setNavigationPointToken() と相互に排他的です。

// 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()

場所 ID と緯度、経度を組み合わせる

v7.4 以降では、Waypoint の作成時に、プレイス ID と緯度経度座標の両方を指定できます。このメソッドは、場所全体のコンテキスト(プレイス ID)を提供しながら、正確なポイント(緯度/経度)を指定する場合に便利です。これにより、Navigation SDK は、目的地をハイライト表示したり、Place 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()

考慮事項

placeIdlatlng の両方を指定した場合:

  • このルートは主に指定された latlng を対象としています。
  • placeId は、到着時の利便性を高めるためのコンテキストとして使用されます。
  • フォールバック: 提供された placeId が、指定された latlng からかけ離れた特徴に対応していると SDK が判断した場合、placeId は無視されます。この場合、ルート検索は latlng のみに進み、場所固有の到着エクスペリエンスの強化は利用できません。

有効な経由地の構成の概要

メソッド setLatLng() setPlaceIdString() setNavigationPointToken() 転送の動作 宛先のハイライト表示
緯度と経度の座標のみ set 欠損 欠損 定義された座標に最も近い道路区分にルーティングします 目的地を高い信頼度で推測できる場合に表示されます
Place ID のみ 欠損 set 欠損 プレイス ID のデフォルトのナビゲーション ポイントへのルート 出発地のプレイス ID
ナビゲーション ポイント トークンのみ 欠損 欠損 set トークンで表される正確なナビゲーション ポイントへのルート 元の Geocoding API の destinations メソッドリクエストで定義された目的地
緯度と経度の座標とプレイス ID を組み合わせたもの set set 欠損 定義された座標に最も近い道路区分にルーティングします 場所 ID から(ただし、場所 ID が緯度/経度の座標から離れすぎている場合は表示されません)