Android 用 Navigation SDK では、経由地を指定する方法が強化され、特に複数の入り口や特定のナビゲーション ポイントがある目的地の場合に、より正確なルート案内と優れた到着エクスペリエンスを提供できます。navigationPointToken を使用するか、緯度と経度の座標をプレイス ID と組み合わせて、より詳細なコンテキストを提供することで、正確な場所にルート案内できます。目的地のハイライト表示機能は、該当する場合に引き続き実行されます。
背景
v7.4 より前は、緯度と経度の座標または プレイス ID のいずれかを使用して Waypoint を定義できました。緯度と経度のみを使用したルート案内は、効果的な場合もありますが、特に大規模な会場、公園、複数の入り口がある建物の場合、降車地点や乗車地点が最適でないことがあります。その結果、最も近い道路セグメントに自動整列されるため、最も便利で正確なナビゲーション ポイントにならない可能性があります。
強化された経由地オプションでは、より多くのコンテキストを提供することで、この問題に対処できます。
ナビゲーション ポイント トークンを使用する
入り口、荷積みドック、指定された乗車エリアなどの特定のナビゲーション ポイントに最も正確にルート案内するには、navigationPointToken を使用します。このトークンは、Geocoding
API の destinations
method を呼び出すことで取得できます。これは、場所に関連付けられた特定のルート案内可能なナビゲーション ポイントを表します。
ナビゲーション ポイント トークンを指定するには:
- Geocoding API
レスポンスの Destinations メソッドから
navigationPointTokenを取得します。 - ビルダーで
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()
考慮事項
placeId と latlng の両方を指定する場合:
- ルートは主に指定された
latlngをターゲットとします。 placeIdは、到着エクスペリエンスを向上させるためのコンテキストとして使用されます。- フォールバック: 指定された
placeIdが、指定されたlatlngから遠すぎる対象物に対応していると SDK が判断した場合、placeIdは無視されます。この場合、ルート案内はlatlngのみに進み、場所固有の到着エクスペリエンスの改善は利用できません。
有効な経由地構成の概要
| メソッド | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
転送の動作 | 目的地のハイライト表示 |
|---|---|---|---|---|---|
| 緯度と経度の座標のみ | set | 欠損 | 欠損 | 定義された座標に最も近い道路セグメントにルート案内します | 目的地を高い信頼度で推測できる場合に表示されます |
| プレイス ID のみ | 欠損 | set | 欠損 | プレイス ID のデフォルトのナビゲーション ポイントにルート案内します | プレイス ID から |
| ナビゲーション ポイント トークンのみ | 欠損 | 欠損 | set | トークンで表される正確なナビゲーション ポイントにルート案内します | Geocoding API リクエストの元の destinations メソッドで定義された目的地から |
| 緯度と経度の座標とプレイス ID を組み合わせる | set | set | 欠損 | 定義された座標に最も近い道路セグメントにルート案内します | プレイス ID から。ただし、プレイス ID が緯度と経度の座標から遠すぎる場合は表示されません |