
デフォルトでは、Navigation SDK for Android は地点までの最短ルートを検索しますが、車両が利用者の待機している道路の側面に到着するとは限りません。また、到着地点がドライバーにとって安全な停車場所であるとも限りません。このガイドでは、このような状況で使用できる 2 つの機能について説明します。
- 道路脇のルーティング設定
- 経由地機能
道路脇のルーティング設定
停車地の地点を作成するときに、道路の特定の側に到着する設定を行うことができます。設定は、道路の同じ側を優先するか、到着方向を指定するかのいずれかの方法で行えます。
道路の同じ側を優先する
地点の地理座標を指定し、最寄りの歩道にスナップされた地点と同じ側の道路に到着することを優先するフラグ(setPreferSameSideOfRoad)を設定します。
Waypoint waypoint =
Waypoint.builder()
.setLatLng(latitude, longitude)
.setTitle("Somewhere in Sydney")
.setPreferSameSideOfRoad(true)
.build()
到着方向を設定する
地点の地理座標を指定し、待機している利用者と同じ側の道路の交通の流れの方向と一致する到着方向(setPreferredHeading)を指定します。
Waypoint waypoint =
Waypoint.builder()
.setLatLng(latitude, longitude)
.setTitle("Somewhere in Sydney")
.setPreferredHeading(preferredHeading)
.build()
Navigation SDK は、地点に最も近い道路セグメントを選択します。この道路セグメントの車線方向は、地点がある道路の側面と(+/- 55 度以内で)一致しています。
経由地の設定を行う
場所によっては、ドライバーが安全に停車できないことがあります(高架、フェリー、地下、その他のアクセスが制限されている場所など)。経由地 機能では、車両が停車するのに適していない場所に地点がある場合、地点を近くの場所に移動します。setVehicleStopover を true に設定すると、代替の場所がある場合、ルートの計算時に地点が自動的に移動します。
仕組み
経由地の設定は、その停車地の地点を作成するときに行います。
これを行うには、次の例に示すように setVehicleStopover 設定を指定します。
Waypoint waypoint =
Waypoint.builder()
.setLatLng(latitude, longitude)
.setTitle("Somewhere in Sydney")
.setVehicleStopover(true)
.build()