複数のオブジェクトの位置を追跡している GPS 追跡システムを想像してみてください。ポイントはデータベース (PostgreSQL + PostGIS) に保存されます。
各パスは、異なる数のポイントで構成されています。これが、パスのペアを比較する (パス全体を比較する) ために、すべてのパスを 100 ポイントのセットに分割したい理由です。これが問題です。このアルゴリズムを既に実装している PostGIS 関数を知っていますか? 私はそれを見つけることができませんでした。
そうでない場合は、Java を使用して解決したいと考えています。この場合、パスを N 点に分割する効率的で実装が簡単なアルゴリズムを知りたいです。
最も単純な例は、この 4 つのポイント パスを 8 つのポイントに分割することです。
position 1 : x=1, y=2
position 2 : x=2, y=4
position 3 : x=3, y=6
position 4 : x=4, y=8
結果は次のようになります。
position 1 : x=1, y=2 (starting point)
position 2 : x=1.5, y=3
position 2 : x=2, y=4
position 2 : x=2.5, y=5
position 2 : x=3, y=6
position 2 : x=3.5, y=7
position 2 : x=4, y=8 (ending point)
編集:「パスのペアを比較する」とは、2つの完全なパス間の距離を計算することを意味します。各パスを 100 ポイントで分割し、これらのポイント間のユークリッド距離を 2 つのパス間の距離として合計する予定です。