一連の(x、y)座標があります。結合すると、これはポリラインを表します。このポリラインは地理的なトラックです。
必要なのは、ポリラインの屈曲度を取得することだけです。ある種のパーセンテージで役立つはずです。たとえば、パスの屈曲度はx%です。
一連の(x、y)座標があります。結合すると、これはポリラインを表します。このポリラインは地理的なトラックです。
必要なのは、ポリラインの屈曲度を取得することだけです。ある種のパーセンテージで役立つはずです。たとえば、パスの屈曲度はx%です。
まあ、それはすべてあなたが屈曲度をどのように定義するかに依存します。屈曲度に関するウィキペディアの記事があり、このテーマに光を当てる可能性があります。
この記事の興味深い文章は、次のことを示しています"roughness (or tortuosity) could be measured by relative change of curvature"
。それは良い出発点になります。
ポリラインは隣接する線分で構成されています。隣接する各線分の間の角度を計算できます。この情報を使用すると、ポリラインの屈曲度についての良いアイデアを得ることができます。たとえば、ポイントとポイントseg(n)
の間の線分とします。n
n+1
tortuosity = sum(abs(angle(seg(n), seg(n+1))) for n in 1 to number of segment)
(2つの線分の間の角度の計算は演習として残されていますが、数学の学位は必要ありません)
上記のメジャーはスケーリングされません。ポイントが多いほど、値が高くなる可能性があります。この結果は、使用している線分の数に応じて簡単にスケーリングできます。
unit_tortuosity = tortuosity / (n * pi)
(2つの線分の間の最大角度は、との間の結果を返すように関数pi
を調整します。したがって、屈曲度は最大で、したがって、完全に直線のポリラインを表すとの間の値を持つことができる上記のスケーリング係数)angle()
0
pi
n*pi
0
1
0