メインコンテンツまでスキップ
バージョン: 2.1

ST_ANGLE

デスクリプション

2つの交差する線を表す3つの点を入力します。これらの線の間の角度を返します。

Syntax

ST_ANGLE( <point1>, <point2>, <point3>)

パラメータ

パラメータ説明
<point1>最初の線の最初の点
<point2>最初の線の2番目の点、および2番目の線の最初の点
<point3>2番目の線の2番目の点

戻り値

これらの線の間のAngleはラジアンで表現され、[0, 2pi]の範囲になります。Angleは最初の線から2番目の線まで時計回りで測定されます。

ST_ANGLEには以下のエッジケースがあります:

  • point 2とpoint 3が同じ場合、NULLが返される
  • point 2とpoint 1が同じ場合、NULLが返される
  • points 2と3が完全なAntipodesの場合、NULLが返される
  • points 2と1が完全なAntipodesLの場合、NULLが返される
  • 入力geographyが単一点でない場合や空のgeographyの場合、エラーがスローされる

SELECT ST_Angle(ST_Point(1, 0),ST_Point(0, 0),ST_Point(0, 1));
+----------------------------------------------------------------------+
| st_angle(st_point(1.0, 0.0), st_point(0.0, 0.0), st_point(0.0, 1.0)) |
+----------------------------------------------------------------------+
| 4.71238898038469 |
+----------------------------------------------------------------------+
SELECT ST_Angle(ST_Point(0, 0),ST_Point(1, 0),ST_Point(0, 1));
+----------------------------------------------------------------------+
| st_angle(st_point(0.0, 0.0), st_point(1.0, 0.0), st_point(0.0, 1.0)) |
+----------------------------------------------------------------------+
| 0.78547432161873854 |
+----------------------------------------------------------------------+
SELECT ST_Angle(ST_Point(1, 0),ST_Point(0, 0),ST_Point(1, 0));
+----------------------------------------------------------------------+
| st_angle(st_point(1.0, 0.0), st_point(0.0, 0.0), st_point(1.0, 0.0)) |
+----------------------------------------------------------------------+
| 0 |
+----------------------------------------------------------------------+
SELECT ST_Angle(ST_Point(1, 0),ST_Point(0, 0),ST_Point(0, 0));
+----------------------------------------------------------------------+
| st_angle(st_point(1.0, 0.0), st_point(0.0, 0.0), st_point(0.0, 0.0)) |
+----------------------------------------------------------------------+
| NULL |
+----------------------------------------------------------------------+
SELECT ST_Angle(ST_Point(0, 0),ST_Point(-30, 0),ST_Point(150, 0));
+--------------------------------------------------------------------------+
| st_angle(st_point(0.0, 0.0), st_point(-30.0, 0.0), st_point(150.0, 0.0)) |
+--------------------------------------------------------------------------+
| NULL |
+--------------------------------------------------------------------------+