Partilhar via


STDifference (tipo de dados geography)

Retorna um objeto que representa o conjunto de pontos de uma instância de geography que reside fora de outra instância de geography.

Sintaxe

.STDifference ( other_geography )

Argumentos

  • other_geography
    É outra instância de geography que indica quais pontos devem ser removidos da instância na qual o STDifference() está sendo invocado.

Tipos de retorno

SQL Server tipo de retorno: geography

Tipo de retorno CLR: SqlGeography

Exceções

Esse método gerará uma ArgumentException se a instância contiver uma borda oposta.

Comentários

Esse método sempre retornará nulo se as SRIDs (IDs de referência espacial) das instâncias de geography não forem correspondentes.

Em SQL Server, o conjunto de possíveis resultados retornados no servidor foi estendido a instâncias de FullGlobe. O SQL Server dá suporte a instâncias espaciais maiores que um hemisfério. O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares. Esse método não é preciso.

Exemplos

A.Computando a diferença entre duas instâncias de geografia

O exemplo a seguir usa STDifference() para computar a diferença entre duas instâncias de geography.

DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();

B.Usando um FullGlobe com STDifference()

O exemplo a seguir usa a instância de FullGlobe. O primeiro resultado é uma GeometryCollection vazia e o segundo resultado é uma instância de Polygon. STDifference() retorna uma GeometryCollection vazia quando uma instância de FullGlobe for o parâmetro. Todo ponto em uma instância de geography de invocação é contido em uma instância de FullGlobe.

DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';

DECLARE @h geography = 'FULLGLOBE';

SELECT @g.STDifference(@h).ToString(),

@h.STDifference(@g).ToString();

Consulte também

Outros recursos

Métodos do OGC em instâncias de geography