アクセス ポイントへのルーティング

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

背景

v7.4 より前は、緯度と経度の座標またはプレイス ID を使用して Waypoint を定義できました。ほとんどのユースケースでは効果的ですが、緯度と経度のみにルートを設定すると、特に大規模な会場、公園、複数の入り口がある建物の場合、最適な乗降ポイントにならないことがあります。その結果、最も近い道路セグメントにスナップされることがありますが、それが最も便利で正しいアクセス ポイントとは限りません。

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

場所 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 のみに進み、場所固有の到着エクスペリエンスの強化は利用できません。

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

入り口、発送センター、指定の受け取り場所などの特定のアクセス ポイントへの最も正確なルート案内には、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()

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

メソッド setLatLng() setPlaceIdString() setNavigationPointToken() 転送の動作 リンク先のハイライト表示
LatLng のみ set 欠損 欠損 定義された座標に最も近い道路区間にルートを設定します 非表示
Place ID Only 欠損 set 欠損 プレイス ID のデフォルトのアクセス ポイントにルートを設定する 出発地の PlaceID
Navigation Point Token Only 欠損 欠損 set トークンで表される正確なアクセス ポイントへのルート 元の Geocoding API の destinations メソッドのリクエストで定義された目的地
LatLng と Place ID の組み合わせ set set 欠損 定義された座標に最も近い道路区間にルートを設定します PlaceID から(ただし、PlaceID が LatLng から離れすぎている場合は表示されません)