Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Methode, die eine schnelle, nur indexbezogene Schnittmethode bietet, um zu ermitteln, ob eine geometry-Instanz eine andere geometry-Instanz überschneidet, vorausgesetzt, dass ein Index verfügbar ist.
Gibt 1 zurück, wenn eine geometry-Instanz möglicherweise eine andere geometry-Instanz überschneidet. Diese Methode erzeugt eventuell eine falsche positive Rückgabe, und das genaue Ergebnis ist unter Umständen planabhängig. Gibt einen genauen Wert 0 (wahr negative Rückgabe) zurück, wenn keine Überschneidung von geometry-Instanzen gefunden wird.
Wenn kein Index verfügbar ist oder verwendet wird, gibt die Methode dieselben Werte zurück wie STIntersects(), wenn diese Methode mit denselben Parametern aufgerufen wird.
Syntax
.Filter ( other_geometry )
Argumente
Ausdruck |
Definition |
other_geometry |
Eine andere geometry-Instanz zum Vergleich mit der Instanz, in der Filter() aufgerufen wird. |
Rückgabetypen
SQL Server Rückgabetyp: bit
CLR-Rückgabetyp: SqlBoolean
Hinweise
Diese Methode ist weder deterministisch noch präzise.
Beispiele
Im folgenden Beispiel wird Filter() verwendet, um festzustellen, wo sich zwei geometry-Instanzen schneiden.
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
Siehe auch
Verweis
STIntersects (geometry-Datentyp)