ST_RelateMatch — Testar om en DE-9IM Intersection Matrix matchar ett Intersection Matrix-mönster
boolean ST_RelateMatch(
text intersectionMatrix, text intersectionMatrixPattern)
;
Testar om ett intersectionMatrix-värde
enligt Dimensionally Extended 9-Intersection Model (DE-9IM) uppfyller ett intersectionMatrixPattern
. Värden för intersektionsmatriser kan beräknas med ST_Relate.
Mer information finns på Section 5.1, “Fastställande av spatiala relationer”.
Utförs av GEOS-modulen
Tillgänglighet: 2.0.0
SELECT ST_RelateMatch('101202FFF', 'TTTTTTFFF') ; -- result -- t
Mönster för vanliga spatiala relationer matchade mot intersektionsmatrisvärden, för en linje i olika positioner i förhållande till en 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