Compartilhar via


Filter (tipo de dados de geometria)

Um método que oferece um método de intersecção somente de índice rápido para determinar se uma instância geometry faz intersecção com outra instância geometry, considerando que um índice esteja disponível.

Retornará 1 se uma instância geometry fizer uma intersecção potencial com outra instância geometry. Esse método pode gerar um retorno de falso positivo e o resultado exato poderá ser dependente de plano. Retornará um valor 0 preciso (retorno verdadeiro negativo) se houver nenhuma intersecção de instâncias geometry localizada.

Nos casos em que um índice não esteja disponível ou não seja usado, o método retornará os mesmos valores que STIntersects() quando chamado com os mesmos parâmetros.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Sintaxe

.Filter ( other_geometry )

Argumentos

  • other_geometry
    É outra instância de geometry para comparar com a instância na qual Filter() é chamado.

Tipos de retorno

SQL Server tipo de retorno: bit

Tipo de retorno CLR: SqlBoolean

Comentários

Esse método não é determinista e não é preciso.

Exemplos

O exemplo a seguir usa Filter() para determinar se há interseção entre duas instâncias de geometry.

CREATE TABLE sample (id int primary key, g geometry);
GO
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));
GO
SELECT id
FROM sample 
WHERE g.Filter(geometry::Parse('POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1;

Consulte também

Referência

STIntersects (tipo de dados geometry)

Outros recursos

Métodos estendidos em instâncias geometry