الاسم
ST_Angle — تُعيد الزاوية بين متجهين معرّفين بـ 3 أو 4 نقاط، أو بخطين.
المختصر
float ST_Angle(geometry point1, geometry point2, geometry point3, geometry point4);
float ST_Angle(geometry line1, geometry line2);
الوصف
تحسب الزاوية باتجاه عقارب الساعة بين متجهين.
الصيغة 1: تحسب الزاوية المحصورة بين النقاط P1-P2-P3. وإذا قُدِّمت نقطة رابعة، تحسب الزاوية بين 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