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)