このトピックでは、ST_CurvatureRadius関数について説明します。 この関数は、各中間点での軌道の回転半径を計算し、浮動小数点数の配列を返します。
構文
double precision[] ST_CurvatureRadius (弾道traj、ブールhasdirectionデフォルトfalse);
パラメーター
パラメーター | 説明 |
traj | 軌道オブジェクト。 |
hasdirection | 軌道の回転方向を計算するかどうかを指定します。 軌道の回転方向が計算されると、軌道が反時計回りに回転するときに負の値が返される。 |
説明
この関数は、各中間点における軌道の回転半径を計算する。 軌道がn個の点を有する場合、軌道の中間点の数は、nと2との間の差である。 軌道が直線に沿って移動するか、または中間点で不変のままである場合、軌道の回転半径は無限大である。 軌道の回転半径が小さいほど、カーブはシャープになります。
例
SELECT ST_CurvatureRadius('{"trajectory":{"version":1,"type":"STPOINT","leafcount":5,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-05 00:00:00","spatial":"LINESTRING(0 0,0 8,6 8,12 8,12 8)" ["2000-01-01 00:00:00","2000-01-02 00:00:00","2000-01-03 00:00:00","2000-01-04 00:00:00","2000-01-05 00:00:00:00"]}':: 軌道);
st_curvatureradius
-----------------------
{5、インフィニティ、インフィニティ}
(1行)
SELECT ST_CurvatureRadius('{"trajectory":{"version":1,"type":"STPOINT","leafcount":8,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-08 00:00:00","spatial":"LINESTRING(0 0,0 8,6 8,12 8,12 8,6 8,0") "[" 2000-01-01 00:00:00 "," 2000-01-02 00:00:00 "," 2000-01-03 00:00:00 "," 2000-01-04 00:00:00:00 "," 2000-01-05 00:00:00 "," 2000-01-06 00:00 "," 2000-01-07 00:00:00 "," 2000-01-08 00:00 "} 弾道);
st_curvatureradius
-------------------------------------------
{5、インフィニティ、インフィニティ、インフィニティ、5}
(1行)
SELECT ST_CurvatureRadius('{"trajectory":{"version":1,"type":"STPOINT","leafcount":8,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-08 00:00:00","spatial":"LINESTRING(0 0,0 8,6 8,12 8,12 8,6 8,0") "[" 2000-01-01 00:00:00 "," 2000-01-02 00:00:00 "," 2000-01-03 00:00:00 "," 2000-01-04 00:00:00:00 "," 2000-01-05 00:00:00 "," 2000-01-06 00:00 "," 2000-01-07 00:00:00 "," 2000-01-08 00:00 "} true);
st_curvatureradius
--------------------------------------------
{5、インフィニティ、インフィニティ、インフィニティ、-5}
(1行)
SELECT ST_CurvatureRadius('{"trajectory":{"version":1,"type":"STPOINT","leafcount":10,"start_time":"2000-01-01 00:00:00","end_time":"2000-01-10 00:00:00:00","spatial":"LINESTRING(0 0,0 8,6 8,12 8,6 8,0) 0,0)" timeline ":[" 2000-01-01 00:00:00 "、" 2000-01-02 00:00:00 "、" 2000-01-03 00:00:00 "、" 2000-01-04 00:00:00 "、" 2000-01-05 00:00:00 "、" 2000-01-06 00:00 "、" 2000-01-07 00:00:00 "、" 2000-01-07 00:08 00:00 "、" "2000-01-09 00:00:00","2000-01-10 00:00:00:00"]}'::trajectory, true);
st_curvatureradius
--------------------------------------------------
{5、インフィニティ、インフィニティ、インフィニティ、-5,0、2.5}
(1行)