2017-07-14 3 views
0

iOS用のHERE SDKを使用してアプリケーションを開発していて、問題が発生しました。経路を計算する際に使用される道路をフィルタする

問題はNMACoreRouterクラスにあります。 ポイントAからポイントBまでのルートを計算する際には、私が定義した道路のみを含むようにしたいと思います。含まれていない道路を含む結果は返さないでください。フィルター機能のようなものです。地点Aから地点Bまでの最速ルートを見つけていますが、特定の道路だけを使用しています(結果からハイウェイを除外する関数と同様に定義できます)。 私はドキュメントを調べましたが、これを行う可能性のあるものは見つかりませんでした。 私はこれを解決する方法がいくつかありますが、本当に魅力的なものはありません。

a)routeが私のリストに含まれている道路を使用している場合は、calculateRouteメソッドを使用し、NMARoute.geometryを比較します。

b)ルートを計算するときにいくつかのウェイポイント(開始と停止の横に)を追加します。ここで問題となるのは、2つ以上のウェイポイントを使用する場合、1つのルートしか返さないということです。別の問題は、ウェイポイントの限界(私はそれが128だと思う)のために計算する前に道路のどの部分にどのウェイポイントがあるのか​​を判断しなければならないということです。ルートが本当に長くなければならない場合は、問題。

だから私はおそらくあなたがこれを解決する方法を、よりエレガントに(速く、より良い..)お持ちなら、興味があります。明らかに、これらのソリューションは完全ではありません。

答えて

1

プレミアムSDK NMACoreRouterのドキュメントを参照すると、最大32のウェイポイントを持つルートのみがサポートされます。

NMACoreRouterは、実際の道路に基づくフィルタリングメカニズムを提供していません。ただし、NMARoutingModeNMARoutingOptionには、特定の種類の道路を除外すると指定することができます。有料道路も、高速道路もありません。

必須の道路のリストが必要なケースは考えられません。最も近いユースケースは、ウェイポイントを使用することです。したがって、特定の道路を含める必要がある場合は、単にその道路にあるウェイポイントを追加します。

私は、ルートの選択肢の数は、あなたがウェイポイントをどれくらい細かく定義するかによって決まると思います。さもなければ私は別のウェイポイントのセットを渡すことによって選択肢を強制することを提案する。

+0

ありがとうございますが、私の問題は解決しません。私はNMARoutingModeとNMARoutingOptionを知っているが、それは役に立たない。可能なルートを事前に定義する必要があります。したがって、ユーザーは事前定義されたルートの1つを選択できます。 –

+0

あなたの質問に既に記載したものには、より良い選択肢はないのではないかと心配しています。しかし、反対のことは可能です: 'NMADynamicPenalty'クラスを見ると、禁止領域や禁止されたRoadElementsを追加することができます。また、SDKがストップとウェイポイントを区別していると付け加えたいと思います。最大32のウェイポイントを追加することができますが、最大128の停止を指定できます。 – Datasun

+0

NMADynamicPenaltyクラスを調べましたが、道路やエリアを禁止するフィルタはありますが、これらの道路だけを許可するフィルタはありませんでした。また、カスタムルートエクステンションがその機能を果たしているようですが、iOSプラットフォームでは利用できないようです。問題は、128ストップでは十分ではないということです。 –

関連する問題