- カテゴリ:
ST_AZIMUTH¶
原点(オブザーバーの位置)を表すポイントと特定のポイントを指定すると、方位角がラジアンで返されます。両方のポイントは GEOGRAPHY または GEOMETRY オブジェクトのいずれかでなければなりません。
方位角 は、原点にあるオブザーバーが北(GEOGRAPHY オブジェクトの場合)またはY軸(GEOMETRY オブジェクトの場合)を向いているときの2つのポイント間の角度です。角度は時計回りに正で、次のとおりです。
北を指す線分は0。
東を指す線分はπ/2。
南を指す線分はπ。
西を指す線分は3π/2。
2つのポイントが同じ場所である場合、関数は NULL を返します。
GEOGRAPHY オブジェクトの場合、球体の地球では こちらで説明する式 を使用して方位角を決定します。
注意
楕円の地球モデルを使用するシステムでは、 方位角に対してより複雑なアルゴリズム を使用します。このため、時として結果が著しく異なる場合があります。
構文¶
ST_AZIMUTH( <geography_expression_for_origin> , <geography_expression_for_target> )
ST_AZIMUTH( <geometry_expression_for_origin> , <geometry_expression_for_target> )
引数¶
geography_expression_for_origin
原点(オブザーバーの場所)を表すポイントである GEOGRAPHY オブジェクト。
geography_expression_for_target
方位角を計算するポイントである GEOGRAPHY オブジェクト。
geometry_expression_for_origin
原点(オブザーバーの場所)を表すポイントである GEOMETRY オブジェクト。
geometry_expression_for_target
方位角を計算するポイントである GEOMETRY オブジェクト。
戻り値¶
ラジアン単位の方位角であるタイプ REAL の値を返します。
使用上の注意¶
入力地理空間オブジェクトの1つがポイントでない場合、関数はエラーを報告します。
1つまたは両方のの入力ポイントが NULL の場合は NULL を返します。
例¶
GEOGRAPHY 例¶
次の例では、原点のPoint (0, 1)とターゲットのPoint (0, 0)の方位角をラジアンで返します。
SELECT ST_AZIMUTH( TO_GEOGRAPHY('POINT(0 1)'), TO_GEOGRAPHY('POINT(0 0)') ); +---------------------------------+ | ST_AZIMUTH( | | TO_GEOGRAPHY('POINT(0 1)'), | | TO_GEOGRAPHY('POINT(0 0)') | | ) | |---------------------------------| | 3.141592654 | +---------------------------------+
次の例では、原点のPoint (0, 1)とターゲットのPoint (1、2)の方位角を度単位で返します。
SELECT DEGREES(ST_AZIMUTH( TO_GEOGRAPHY('POINT(0 1)'), TO_GEOGRAPHY('POINT(1 2)') )); +---------------------------------+ | DEGREES(ST_AZIMUTH( | | TO_GEOGRAPHY('POINT(0 1)'), | | TO_GEOGRAPHY('POINT(1 2)') | | )) | |---------------------------------| | 44.978182941 | +---------------------------------+
GEOMETRY 例¶
次の例では、原点のPoint (0, 1)とターゲットのPoint (0, 0)の方位角をラジアンで返します。
SELECT ST_AZIMUTH(
TO_GEOMETRY('POINT(0 1)', TO_GEOMETRY('POINT(0 0)')
);
+------------------------------------------------------------------+
| ST_AZIMUTH(TO_GEOMETRY('POINT(0 1)'), TO_GEOMETRY('POINT(0 0)')) |
|------------------------------------------------------------------|
| 3.141592654 |
+------------------------------------------------------------------+
次の例では、原点のPoint (0, 1)とターゲットのPoint (0.707, 0.707)の方位角を度単位で返します。
SELECT ST_AZIMUTH(
TO_GEOMETRY('POINT(0 0)', TO_GEOMETRY(0.707 0.707')
);
+-------------------------------------------------------------------------+
| ST_AZIMUTH(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(0.707 0.707')) |
|-------------------------------------------------------------------------|
| 0.7853981634 |
+-------------------------------------------------------------------------+