Filter (geometry Data Type)
Metoda, która oferuje metody szybkiego, tylko do indeksu punktu przecięcia do określenia, czy geometry wystąpienie przecina inne geometry wystąpienie, indeks przy założeniu, że jest dostępna.
Zwraca wartość 1, jeśli geometry wystąpienie potencjalnie przecina inne geometry wystąpienie. Ta metoda może być fałszywe zwrotu dodatnie i dokładne wyniki mogą być zależne od planu.Zwraca wartość 0 dokładne (true zwrot ujemna), jeśli nie ma żadnych przecięcia geometry znaleziono wystąpień.
W przypadkach, gdy indeks jest niedostępny lub nie jest używany metoda zwraca te same wartości jak STIntersects() gdy wywołany z tymi samymi parametrami.
.Filter ( other_geometry )
Argumenty
Termin |
Definicja |
other_geometry |
Czy drugi geometry wystąpienie, które ma zostać porównana przy użyciu wystąpienie, w którym Filter() jest wywoływany. |
Zwracane typy
SQL Server typ zwrotny: bit
Zwracany typ CLR: SqlBoolean
Remarks
Ta metoda nie jest deterministyczny i nie są dokładne.
Przykłady
W poniższym przykładzie użyto Filter() Aby ustalić, czy dwa geometry wystąpienia przecinających.
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
See Also