2

交通シミュレーションを実装しようとしています。道路モデルには、OpenStreetMap のデータを使用します。これは、道路がいくつかのセクションで構成されており、それらがつながっていることを意味します。これらのセクションの開始点と終了点は既知です。車両は始点から終点を指すベクトル上を移動します。曲線は、複数のベクトルをつなぎ合わせることでモデル化されます。

シミュレーションを可能な限り現実的なものにするために、車両がこれに応答できるように (加速/減速)、カーブを検出するためのコンセプトが必要です。また、曲線が開始するポイント、曲げに属するカット/ポイント、および曲線が終了するポイントも決定する必要があります。

任意の数の小さな個々のピースが含まれている場合でも、カーブを特定するにはどうすればよいですか?

いつもヒントをありがとう!

4

2 に答える 2

2

OSM の道路は曲線ではなくセグメントで構成されているため、曲線の半径を取得できません

もちろん、一連の道路セグメントに基づいて曲線を「推測」することもできますが、それを行うための普遍的な方法がないことがわかります。つまり、推測リストには常に複数の曲線があり、どれも実際には証明されません。存在。

OSM のデータにこれが含まれているとは思えないため、道路の厚さで車両が移動する表面を説明することはできません。(更新:以下のユーザー scai からのコメントを参照してください)。

于 2014-05-15T08:59:18.813 に答える
0

まず、OSM の基本要素を理解していることを確認してください。ノードウェイリレーションがあります。リレーションにはジオメトリ情報が含まれていないため、リレーションをスキップできます (道路の定義に使用されないマルチポリゴンを除く)。

ウェイは、2 つ以上のノードによって定義されます。各ウェイには、それが属するすべてのノードへの参照があります。各ノードには座標と、それが属するすべてのウェイへの参照があります。これは、ノードが複数のウェイに属することもできることを意味します。たとえば、それがウェイの最後にある場合、それは前のすべてのウェイと次のすべてのウェイに属します。または、ウェイが必ずしもジャンクションで終了する必要がないため、交差するすべてのウェイを参照するウェイの途中にあります。

したがって、カーブは 1 つまたは複数のウェイで構成できます。したがって、曲線を検出するには、連続するノードと連続するウェイを同時に見る必要があります。連続する 2 つのノードごとに道路セグメントを計算する必要があります。連続するノード間の距離と連続する道路セグメント間の角度は、これが曲線か直線かを判断するための基準になります。

于 2014-05-15T13:21:23.613 に答える