Filter (geography-Datentyp)
Eine Methode, die eine schnelle, nur indexbezogene Schnittmethode bietet, um zu ermitteln, ob eine geography-Instanz eine andere geography-Instanz überschneidet, vorausgesetzt, dass ein Index verfügbar ist.
Gibt 1 zurück, wenn eine geography-Instanz möglicherweise eine andere geography-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 geography-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_geography )
Argumente
Ausdruck |
Definition |
other_geography |
Eine andere geography-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 geography-Instanzen schneiden.
Code
CREATE table sample (id int primary key, g geography);
INSERT INTO sample values
(0, geography::Point(45, -120, 4326)),
(1, geography::Point(45, -120.1, 4326)),
(2, geography::Point(45, -120.2, 4326)),
(3, geography::Point(45, -120.3, 4326)),
(4, geography::Point(45, -120.4, 4326))
CREATE spatial index sample_idx on sample(g);
SELECT id
FROM sample
WHERE g.Filter(geography::Parse(
'POLYGON((-120.1 44.9, -119.9 44.9, -119.9 45.1, -120.1 45.1, -120.1 44.9))')) = 1;
Siehe auch
Verweis
STIntersects (geography-Datentyp)