Freigeben über


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)

Andere Ressourcen

Erweiterte Methoden für geography-Instanzen