ST_Intersects — Teste si deux géométries se croisent (elles ont au moins un point en commun)
boolean ST_Intersects(
geometry geomA , geometry geomB )
;
boolean ST_Intersects(
geography geogA , geography geogB )
;
Renvoie true
si deux géométries se croisent. Les géométries se croisent si elles ont un point commun.
Pour les objets de type geography, une tolérance de distance de 0,00001 mètre est utilisée (les points très proches sont donc considérés comme se croisant).
En termes mathématiques : ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅
Les géométries se croisent si leur matrice d'intersection DE-9IM correspond à l'un des éléments suivants :
T********
*T*******
***T*****
****T****
L'intersection spatiale est impliquée par tous les autres tests de relations spatiales, à l'exception de ST_Disjoint, qui teste que les géométries ne se croisent PAS.
Cette fonction inclut une comparaison de la boîte englobante qui utilise tous les index disponibles sur les géométries. |
Modifié : 3.0.0 La version SFCGAL a été supprimée et la prise en charge native des TINS 2D a été ajoutée.
Amélioré : 2.5.0 Supporte GEOMETRYCOLLECTION.
Amélioré : 2.3.0 Amélioration du court-circuit PIP étendu à la prise en charge des multipoints avec peu de points. Les versions précédentes ne prenaient en charge que les points dans les polygones.
Effectuée par le module GEOS (pour geometry), la geography est native
Disponibilité : la version 1.5 a introduit la prise en charge du type geography.
Pour geography, cette fonction a une tolérance de distance d'environ 0,00001 mètre et utilise la sphère plutôt que le calcul du sphéroïde. |
NOTE : il s'agit de la version "autorisée" qui renvoie un booléen et non un entier. |
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 - ST_Intersects(g1, g2 ) --> Not (ST_Disjoint(g1, g2 ))
Cette méthode implémente la spécification SQL/MM. SQL-MM 3: 5.1.27
Cette méthode prend en charge les types Circular String et Curve.
Cette fonction prend en charge les triangles et les réseaux irréguliers triangulés (TIN).
SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry); st_intersects --------------- f (1 row) SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry); st_intersects --------------- t (1 row) -- Look up in table. Make sure table has a GiST index on geometry column for faster lookup. SELECT id, name FROM cities WHERE ST_Intersects(geom, 'SRID=4326;POLYGON((28 53,27.707 52.293,27 52,26.293 52.293,26 53,26.293 53.707,27 54,27.707 53.707,28 53))'); id | name ----+------- 2 | Minsk (1 row)
SELECT ST_Intersects( 'SRID=4326;LINESTRING(-43.23456 72.4567,-43.23456 72.4568)'::geography, 'SRID=4326;POINT(-43.23456 72.4567772)'::geography ); st_intersects --------------- t