2016-05-27 3 views
1

ここでは、たくさんのウェイポイントを持つルートに従うために、ここでアンドロイドのsdkを使いたいと思っています(ガベージコレクショントラックを近所のすべての道路に導くため)。32以上のウェイポイントをナビゲートする方法は?

問題は、RoutePlanに32を超えるウェイポイントを追加すると、計算が「IllegalArgumentException:ルート計算に許容されるウェイポイントの最大数(32)に達しました」というエラーで失敗することです。

この制限を削除する方法はありますか?

+0

私が知る限り、これを行う方法はありません。しかし、あなたのウェイポイントはすべてスタックに保持され、ウェイポイントが消費されると、ウェイポイントが削除され、スタックから新しいウェイポイントが追加されます。 –

+0

私はこのテキストをウェブサイトから入手しました。 "注:100以上のウェイポイントを持つルートにはかなりの計算時間が必要です。"彼らがそれを言うなら、それは可能かもしれないと私は確信しています。リンクはhttps://developer.here.com/mobile-sdks/documentation/android/topics/routing.html – Neil

+0

@SorinLascuそれは私が今やっている方法ですが、私はナビゲーションを停止し、新しいRoutePlan。あなたはナビゲーションを再開することなくそれを行うことができますか? – Teriblus

答えて

2

申し訳ありませんが、この制限はルータにハードコードされています。モバイルデバイス上で> 32ウェイポイントを計算するのに必要な計算リソースは非常に高いです。

あなたができることは、2つのルートを別々に計算することです。ウェイポイント1-32のIEセグメント1、ウェイポイント32-64のセグメント2など。

最初のルートの最後の数回の操作に到達すると、NavigationManagerにstopを呼び出し、ルートの2番目の部分でナビゲーションを内部的に開始できます。コード内でこれを行うと、ユーザーはかなりシームレスになるはずです。

もう1つの考えは、前のセグメントの終わり近くにあるときにセグメントを計算することです。現在の交通状況によっては経路が異なる場合があります。

+0

事前計算されたMapRouteオブジェクトを連結する方法はありますか? – Teriblus

2

この制限は、SDK 3.3以降で変更されています。ここでは、最大128のウェイポイントを許可します。

@Teriblus、MapRouteオブジェクトを連結する方法はありません。

関連する問題