ST_Azimuth — 北を基準とした2点間の線の方位角を返します。
float ST_Azimuth(
geometry pointA, geometry pointB)
;
float ST_Azimuth(
geography pointA, geography pointB)
;
与えられたポイントジオメトリで定義される線分の方位をラジアン単位で返します。2点が一致する場合にはNULLを返します。方位は北 (Y軸の正方向)を基準として時計回りに計測します。北は0、北東はπ/4、東はπ/2、南東は3π/4、南はπ、南西は5π/4、西は3π/2、北西は7π/4になります。
ジオグラフィでは、方位角計算問題はinverse geodesic problemとして知られます。
方位角は参照平面と一つのポイントの間の角度と定義される数学的概念で、角度の単位はラジアンです。ラジアン単位の結果はPostgreSQL関数degrees()
で度に変換できます。
方位角は、垂直軸に沿ってシフトさせるには???と併用します。実装についてはPostGIS wiki内の関数upgis_lineshift()
をご覧下さい。
Availability: 1.1.0
Enhanced: 2.0.0 ジオグラフィ対応が導入されました。
Enhanced: 2.2.0 精度とロバスト性向上のために回転楕円体面上の計測をGeographicLibで行うようにしました。この新機能を使うには、Proj 4.9.0以上が必要です。
度単位のジオメトリの方位
SELECT degrees(ST_Azimuth( ST_Point(25, 45), ST_Point(75, 100))) AS degA_B, degrees(ST_Azimuth( ST_Point(75, 100), ST_Point(25, 45) )) AS degB_A; dega_b | degb_a ------------------+------------------ 42.2736890060937 | 222.273689006094
![]() 緑: 開始点 (25,45)で、鉛直方向に行きます。黄: degA_Bを示す行程 (方位)です。
| ![]() 緑: (75,100)が開始点で、鉛直方向に行きます。黄: degB_Aを示す行程 (方位)です。
|