Partilhar via


STSymDifference (tipo de dados de geometria)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

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

Syntax

  
.STSymDifference ( other_geometry )  

Arguments

other_geometry
É outra instância de geometria além da instância na qual STSymDifference() está sendo invocada.

Tipos de devolução

Tipo de retorno do SQL Server: geometria

Tipo de retorno CLR: SqlGeometry

Remarks

Esse método sempre retorna null se as IDs de referência espacial (SRIDs) das instâncias de geometria não corresponderem. O resultado pode conter segmentos de arco circular somente se as instâncias de entrada contiverem segmentos de arco circular.

Examples

A. Calculando a diferença simétrica de duas instâncias do Polígono

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

DECLARE @g geometry;  
DECLARE @h geometry;  
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);  
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);  
SELECT @g.STSymDifference(@h).ToString();  

B. Calculando a diferença simétrica entre uma ocorrência de CurvePolygon e Polygon

O exemplo a seguir retorna a GeometryCollection que representa a diferença simétrica entre a CurvePolygon e a Polygon.

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';  
 SELECT @h.STSymDifference(@g).ToString();

C. Usando STSymDifference() na instância de CurvePolygon com uma ocorrência de Polygon inscrita

O exemplo a seguir retorna uma CurvePolygon ocorrência com um anel interior Polygon que representa a diferença simétrica entre as duas instâncias comparadas.

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';  
 SELECT @h.STSymDifference(@g).ToString();

Ver também

Métodos OGC em instâncias de geometria