الاسم
ST_Touches — تختبر ما إذا كان لشكلين هندسيين نقطة مشتركة واحدة على الأقل، دون أن يتقاطع داخلاهما
المختصر
boolean ST_Touches(geometry A, geometry B);
الوصف
تُعيد TRUE إذا تقاطع A وB لكن داخليهما لا يتقاطعان. وبصورة مكافئة، لـ A وB نقطة مشتركة واحدة على الأقل، وتقع النقاط المشتركة على حدّ واحد على الأقل. في حالة مُدخلات نقطة/نقطة تكون العلاقة دائمًا FALSE، لأن النقاط ليس لها حدود.
بالصيغة الرياضية: ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) = ∅) ∧ (A ⋂ B ≠ ∅)
تتحقق هذه العلاقة إذا طابقت مصفوفة التقاطع DE-9IM للشكلين الهندسيين أحد الأنماط التالية:
-
FT*******
-
F**T*****
-
F***T****
|
|
|
تتضمن هذه الدالة تلقائيًا مقارنةً للمستطيل المحيط تستفيد من أي فهارس مكانية متاحة على الأشكال الهندسية. لتجنب استخدام الفهرس، استخدم |
|
|
|
حُسّنت في: 3.0.0 فُعّل دعم |
تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1. s2.1.1.2 // s2.1.13.3
تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM 3: 5.1.28
أمثلة
يُعيد المسند ST_Touches القيمة TRUE في الأمثلة التالية.
|
|
|
|
|
|
SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::geometry);
st_touches
------------
f
(1 row)
SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::geometry);
st_touches
------------
t
(1 row)