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

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