Name

ST_Intersects — Teste si deux géométries se croisent (elles ont au moins un point en commun)

Synopsis

boolean ST_Intersects( geometry geomA , geometry geomB );

boolean ST_Intersects( geography geogA , geography geogB );

Description

Returns true if two geometries intersect. Geometries intersect if they have any point in common.

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).

In mathematical terms: 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.

[Note]

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.

[Note]

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]

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).

Exemples de géométrie

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)

Exemples géographiques

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

Voir aussi

&&, ST_3DIntersects, ST_Disjoint