名稱

ST_Angle — 傳回由 3 個或 4 個點,或 2 條線定義的兩個向量之間的角度。

概要

float ST_Angle(geometry point1, geometry point2, geometry point3, geometry point4);

float ST_Angle(geometry line1, geometry line2);

描述

計算兩個向量之間的順時針角度。

變體 1: 計算點 P1-P2-P3 所夾的角度。 如果提供了第 4 個點,則計算點 P1-P2 和 P3-P4 的角度

變體 2: 計算由輸入線的起點和終點定義的兩個向量 S1-E1 和 S2-E2 之間的角度

結果是介於 0 和 2π 弧度之間的正角度。弧度結果可以使用 PostgreSQL 函數 degrees() 轉換為度數。

請注意 ST_Angle(P1,P2,P3) = ST_Angle(P2,P1,P2,P3)

可用性:2.5.0

範例

三個點之間的角度

SELECT degrees( ST_Angle('POINT(0 0)', 'POINT(10 10)', 'POINT(20 0)') );

 degrees
---------
     270

由四個點定義的向量之間的角度

SELECT degrees( ST_Angle('POINT (10 10)', 'POINT (0 0)', 'POINT(90 90)', 'POINT (100 80)') );

      degrees
-------------------
 269.9999999999999

由線的起點和終點定義的向量之間的角度

SELECT degrees( ST_Angle('LINESTRING(0 0, 0.3 0.7, 1 1)', 'LINESTRING(0 0, 0.2 0.5, 1 0)') );

      degrees
--------------
           45

另請參閱

ST_Azimuth