Compartilhar via


STSymDifference (tipo de dados geography)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Banco de Dados SQL no Microsoft Fabric

Retorna um objeto que representa todos os pontos que estão em uma instância de geography ou em outra instância de geography, mas não os pontos que estão em ambas as instâncias.

Sintaxe

  
.STSymDifference ( other_geography )  

Argumentos

other_geography
É outra instância de geography, além da instância na qual STSymDistance() está sendo invocado.

Tipos de retorno

Tipo de retorno do SQL Server: geography

Tipo de retorno do CLR: SqlGeography

Comentários

Esse método sempre retorna nulo se os SRIDs (identificadores de referência espacial) das instâncias de geography não são correspondentes.

SQL Server oferece suporte a instâncias espaciais maiores do que um hemisfério. No SQL Server, o conjunto de possíveis resultados no servidor foi estendido para instâncias de FullGlobe.

O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares.

Exemplos

a. Computando a diferença simétrica de dois polígonos

O exemplo a seguir usa STSymDifference() para computar a diferença simétrica entre duas instâncias de Polygon.

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('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);  
SELECT @g.STSymDifference(@h).ToString();  

B. Computando a diferença simétrica com FullGlobe

O exemplo a seguir compara a diferença simétrica de um Polygon com 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))';  
 SELECT @g.STSymDifference('FULLGLOBE').ToString();

Consulte Também

Métodos do OGC em instâncias de geography