الاسم
ST_RelateMatch — تختبر ما إذا كانت مصفوفة تقاطع DE-9IM تطابق نمط مصفوفة تقاطع
المختصر
boolean ST_RelateMatch(text intersectionMatrix, text intersectionMatrixPattern);
الوصف
تختبر ما إذا كانت قيمة intersectionMatrix في نموذج التقاطعات التسعة الموسّع بالأبعاد (DE-9IM) تستوفي intersectionMatrixPattern. يمكن حساب قيم مصفوفة التقاطع بواسطة ST_Relate.
لمزيد من المعلومات راجع قسم 5.1, “تحديد العلاقات المكانية”.
تُنفَّذ بواسطة وحدة GEOS
متاحة منذ: 2.0.0
أمثلة
SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;
-- result --
t
أنماط العلاقات المكانية الشائعة مطابَقةً مع قيم مصفوفة التقاطع، لخط في مواضع مختلفة بالنسبة إلى مضلع
SELECT pat.name AS relationship, pat.val AS pattern,
mat.name AS position, mat.val AS matrix,
ST_RelateMatch(mat.val, pat.val) AS match
FROM (VALUES ( 'Equality', 'T1FF1FFF1' ),
( 'Overlaps', 'T*T***T**' ),
( 'Within', 'T*F**F***' ),
( 'Disjoint', 'FF*FF****' )) AS pat(name,val)
CROSS JOIN
(VALUES ('non-intersecting', 'FF1FF0212'),
('overlapping', '1010F0212'),
('inside', '1FF0FF212')) AS mat(name,val);
relationship | pattern | position | matrix | match
--------------+-----------+------------------+-----------+-------
Equality | T1FF1FFF1 | non-intersecting | FF1FF0212 | f
Equality | T1FF1FFF1 | overlapping | 1010F0212 | f
Equality | T1FF1FFF1 | inside | 1FF0FF212 | f
Overlaps | T*T***T** | non-intersecting | FF1FF0212 | f
Overlaps | T*T***T** | overlapping | 1010F0212 | t
Overlaps | T*T***T** | inside | 1FF0FF212 | f
Within | T*F**F*** | non-intersecting | FF1FF0212 | f
Within | T*F**F*** | overlapping | 1010F0212 | f
Within | T*F**F*** | inside | 1FF0FF212 | t
Disjoint | FF*FF**** | non-intersecting | FF1FF0212 | t
Disjoint | FF*FF**** | overlapping | 1010F0212 | f
Disjoint | FF*FF**** | inside | 1FF0FF212 | f