STSymDifference (tipo de dados geography)
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 residem nas duas instâncias.
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
.STSymDifference ( other_geography )
Argumentos
- other_geography
É outra instância de geography além da instância na qual o STSymDistance() está sendo invocado.
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Comentários
Esse método sempre retornará nulo se as SRIDs (IDs de referência espacial) das instâncias geography não forem 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();