Compartilhar via


Filter (tipo de dados de geografia)

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

Retornará 1 se uma instância geography fizer uma intersecção potencial com outra instância geography. 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 geography 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_geography )

Argumentos

  • other_geography
    É outra instância de geography para comparação com a instância na qual Filter() é invocado.

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 geography.

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;

Consulte também

Referência

STIntersects (tipo de dados geography)

Outros recursos

Métodos estendidos em instâncias geography