Compare Route
この章はルート比較について説明します。
ルート比較とは
新ルートを探索した時、案内中ルートと比べて距離や時間、料金がどの程度変わるのか、ルート形状がどう変わるのか、を比較するための機能です。
処理の流れ
- 案内中ルートがある状態で
CompareRouteRequest
インスタンスを生成します。 - 別ルートの条件を RouteOption によって調整します。
Navi.compareRoute()
を呼び出します。リスナで結果が通知されます。- 処理結果が成功だった場合、新ルートで案内するか、案内中ルートの案内を継続するか選択できます。
新ルートで案内したい場合、
Navi.startGuidance()
の引数にcompareRouteResult.getNewRoute()
を指定します。 案内中ルートの案内を継続したい場合、Navi.cancelCompareRouteResult();
を呼び出します。
有料道路を全く使わないルートを探索するサンプルコードは以下の通りです。
CompareRouteRequest request = new CompareRouteRequest();
RouteOptions options = new RouteOptions();
options.setUseToll(false);
options.setUseHighway(false);
request.setRouteOptions(options);
Navi.getInstance().compareRoute(request, (errorCode, compareRouteResult) -> {
if (errorCode != CompareRouteListener.ErrorCode.NONE) {
// 処理失敗
return;
}
if (!compareRouteResult.isChangeRoute()) {
// ルートに変化なし
return;
}
if (newRouteSelected()) {
// 新しいルートが選択された
Navi.getInstance().startGuidance(compareRouteResult.getNewRoute(), new StartGuidanceListener() {
@Override
public void onCompleted(ErrorCode errorCode, GuidePointResult guidePointResult) {
if (errorCode == StartGuidanceListener.ErrorCode.NONE) {
// 成功時の処理が何かあればここに記述
}
}
});
}
}
else {
// 案内中ルートでの案内を継続する
Navi.getInstance().cancelCompareRouteResult();
}
});