ST_Angle
ST_Angle は、次のように時計回りに測定されたポイント間の角度をラジアン単位で返します。
3 つのポイントを入力した場合、戻り角度 P1-P2-P3 は、P1 から P3 まで P2 を中心に時計回りに回転して、獲得した角度として測定されます。
4 つのポイントを入力した場合、有向線 P1-P2 と P3-P4 がなす時計回りの角度が返されます。入力が縮退の場合 (つまり、P1 が P2 に等しい、または P3 が P4 に等しい場合)、null が返されます。
戻り値はラジアンで、範囲は [0, 2π) です。
ST_Angle は、入力ジオメトリの 2D 射影に対して動作します。
構文
ST_Angle(geom1, geom2, geom3)
ST_Angle(geom1, geom2, geom3, geom4)
引数
- geom1
-
データ型
GEOMETRY
の値またはGEOMETRY
型と評価される式の値。サブタイプはPOINT
である必要があります。 - geom2
-
データ型
GEOMETRY
の値またはGEOMETRY
型と評価される式の値。サブタイプはPOINT
である必要があります。 - geom3
-
データ型
GEOMETRY
の値またはGEOMETRY
型と評価される式の値。サブタイプはPOINT
である必要があります。 - geom4
-
データ型
GEOMETRY
の値またはGEOMETRY
型と評価される式の値。サブタイプはPOINT
である必要があります。
戻り型
DOUBLE PRECISION
.
geom1 が geom2 と等しい場合、または geom2 が geom3 と等しい場合は、null が返されます。
geom1、geom2、geom3、または geom4 が null の場合は、null が返されます。
geom1、geom2、geom3、または geom4 のいずれかが空のポイントである場合は、エラーが返されます。
geom1、geom2、geom3、geom4 の空間参照系識別子 (SRID) が同じ値ではない場合は、エラーが返されます。
例
次の SQL は、3 つの入力ポイントの角度に変換された角度を返します。
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0)) / Pi() * 180.0 AS angle;
angle
---------------
45
次の SQL は、4 つの入力ポイントの角度に変換された角度を返します。
SELECT ST_Angle(ST_Point(1,1), ST_Point(0,0), ST_Point(1,0), ST_Point(2,0)) / Pi() * 180.0 AS angle;
angle
---------------
225