GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.11.1. العلاقات الطوبولوجية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_Touches

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

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****

[ملاحظة]

تتضمن هذه الدالة تلقائيًا مقارنةً للمستطيل المحيط تستفيد من أي فهارس مكانية متاحة على الأشكال الهندسية. لتجنب استخدام الفهرس، استخدم _ST_Touches بدلًا من ذلك.

[هام]

حُسّنت في: 3.0.0 فُعّل دعم GEOMETRYCOLLECTION

تطبّق هذه الدالة مواصفة 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 في الأمثلة التالية.

POLYGON / POLYGON

POLYGON / POLYGON

POLYGON / LINESTRING

LINESTRING / LINESTRING

LINESTRING / LINESTRING

POLYGON / POINT

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)