Filter (type de données geometry)

Méthode rapide d'intersection d'index uniquement pour déterminer si une instance geometry entre en intersection avec une autre instance geometry, en supposant qu'un index soit disponible.

Retourne 1 si une instance geometry entre potentiellement en intersection avec une autre instance geometry. Cette méthode peut produire un retour de faux positif, et le résultat exact peut être dépendant du plan. Retourne une valeur 0 exacte (retour négatif vrai) si aucune intersection d'instances geometry n'est trouvée.

Dans les cas où un index n'est pas disponible ou n'est pas utilisé, la méthode retourne les mêmes valeurs que STIntersects() lorsqu'elle est appelée avec les mêmes paramètres.

Syntaxe

.Filter ( other_geometry )

Arguments

Terme

Définition

other_geometry

Autre instance geometry à comparer à l'instance sur laquelle Filter() est appelé.

Types de retour

SQL Server : bit

Type de retour CLR : SqlBoolean

Notes

Cette méthode n'est pas déterministe et n'est pas précise.

Exemples

L'exemple suivant utilise Filter() pour déterminer si deux instances geometry entrent en intersection.

Code

CREATE TABLE sample (id int primary key, g geometry)
INSERT INTO sample values
   (0, geometry::Point(0, 0, 0)),
   (1, geometry::Point(0, 1, 0)),
   (2, geometry::Point(0, 2, 0)),
   (3, geometry::Point(0, 3, 0)),
   (4, geometry::Point(0, 4, 0))

CREATE SPATIAL INDEX sample_idx ON sample(g)
WITH (
   bounding_box = (-8000, -8000, 8000, 8000)
)
SELECT id
FROM sample 
WHERE g.Filter(geometry::Parse(
   'POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1

Voir aussi

Référence

STIntersects (type de données geometry)

Autres ressources

Méthodes étendues sur les instances géométriques