ST_Touches — Teste si deux géométries ont au moins un point en commun, mais que leurs intérieurs ne se croisent pas
boolean ST_Touches(
geometry A, geometry B)
;
Retourne TRUE
si A et B se croisent, mais que leurs intérieurs ne se croisent pas. De manière équivalente, A et B ont au moins un point en commun, et les points communs se situent dans au moins une frontière. Pour les entrées point/point, la relation est toujours FALSE
, puisque les points n'ont pas de frontière.
In mathematical terms: ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) ≠ ∅) ∧ (A ⋂ B ≠ ∅)
Cette relation est valable si la matrice d'intersection DE-9IM pour les deux géométries correspond à l'une d'entre elles :
FT*******
F**T*****
F***T****
Cette fonction inclut une comparaison de la boîte englobante qui utilise tous les index disponibles sur les géométries. Pour éviter d'utiliser un index, utilisez plutôt la |
Amélioration : 3.0.0 a permis la prise en charge de |
Cette méthode implémente la spécification OGC Simple Features Implementation Specification for SQL 1.1.
s2.1.1.2 // s2.1.13.3
Cette méthode implémente la spécification SQL/MM.
SQL-MM 3: 5.1.28
Le prédicat ST_Touches
renvoie TRUE
dans les exemples suivants.
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)