Opérateur Intersects

Intersects est un opérateur spatial booléen qui renvoie true si les deux objets se croisent en un point, ou si une partie du premier objet se trouve à l'intérieur du deuxième objet ou encore si le premier objet contient une partie du deuxième objet.

Exemple 1 :
SELECT city FROM table WHERE obj Intersects <geometry>

Si le fournisseur de source de données prend en charge Intersects, la requête toute entière est déléguée au fournisseur de source de données.

Si le fournisseur de données source ne prend pas en charge Intersects, cet opérateur est reformulé comme EnvelopesIntersect, qui renvoie davantage d'enregistrements qu'une opération Intersects, mais bien moins que si la table toute entière était renvoyée.

SELECT city, obj FROM table WHERE obj EnvelopesIntersect <geometry>

Spectrum Spatial exécute la requête toute entière, en utilisant les résultats à partir du fournisseur de source de données :

SELECT city FROM <results from the delegation> WHERE obj Intersects <geometry>
Exemple 2 :
SELECT city FROM table WHERE <geometry> Intersects obj

Cet exemple est l'inverse le premier exemple. Lors de l'écriture, cette requête ne répondent pas à la règles de la clause WHERE, où les opérateurs booléens doivent être sous la forme WHERE <column> operator <geometry>. La requête est rephrased avec les opérandes vers l'arrière et déléguée au fournisseur de source de données. Cela n'affecte pas les résultats dans la mesure où l'inverse de Intersects est Intersects.

SELECT city FROM table WHERE obj Intersects <geometry>