ST_RelateMatch — Testet, ob eine DE-9IM Schnittpunktmatrix mit einem Schnittpunktmuster übereinstimmt
boolean ST_RelateMatch(text intersectionMatrix, text intersectionMatrixPattern);
Prüft, ob ein Dimensionally Extended 9-Intersection Model (DE-9IM) intersectionMatrix Wert ein intersectionMatrixPattern erfüllt. Schnittpunktmatrixwerte können mit ST_Relate berechnet werden.
Weitere Informationen finden Sie unter Section 5.1, “Räumliche Beziehungen feststellen”.
Wird durch das GEOS Modul ausgeführt
Verfügbarkeit: 2.0.0
SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ;
-- result --
t
Muster für gemeinsame räumliche Beziehungen, die mit den Werten der Kreuzungsmatrix abgeglichen werden, für eine Linie in verschiedenen Positionen relativ zu einem Polygon
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