Name

ST_Touches — Prüft, ob zwei Geometrien mindestens einen Punkt gemeinsam haben, aber ihre Innenräume sich nicht schneiden

Synopsis

boolean ST_Touches(geometry A, geometry B);

Beschreibung

Rückgabe TRUE wenn A und B sich schneiden, aber ihre Innenräume sich nicht schneiden. Äquivalent dazu haben A und B mindestens einen Punkt gemeinsam, und die gemeinsamen Punkte liegen in mindestens einer Begrenzung. Bei Punkt/Punkt-Eingaben ist die Beziehung immer FALSE, da Punkte keine Begrenzung haben.

Mathematisch ausgedrückt: ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) ≠ ∅) ∧ (A ⋂ B ≠ ∅)

Diese Beziehung ist gegeben, wenn die DE-9IM-Schnittpunktmatrix für die beiden Geometrien einem der folgenden Werte entspricht:

  • FT*******

  • F**T*****

  • F***T****

[Note]

Diese Funktion beinhaltet automatisch einen Bounding-Box-Vergleich, der alle räumlichen Indizes verwendet, die für die Geometrien verfügbar sind. Um die Verwendung eines Indexes zu vermeiden, verwenden Sie stattdessen _ST_Touches.

[Important]

Verbessert: 3.0.0 ermöglicht die Unterstützung von GEOMETRYCOLLECTION

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1. s2.1.1.2 // s2.1.13.3

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM 3: 5.1.28

Beispiele

Das Prädikat ST_Touches liefert TRUE in den folgenden Beispielen.

VIELECK / VIELECK

VIELECK / VIELECK

POLYGON / LINESTRING

LINESTRING / LINESTRING

LINESTRING / LINESTRING

POLYGON / PUNKT

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)