Condividi tramite


STSymDifference (tipo di dati geometry)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric

Restituisce un oggetto che rappresenta tutti i punti che si trovano in un'istanza geometry o un'altra istanza geometry, ma non i punti che si trovano in entrambe le istanze.

Sintassi

  
.STSymDifference ( other_geometry )  

Argomenti

other_geometry
Altra istanza geometry oltre all'istanza sulla quale viene chiamato STSymDifference().

Tipi restituiti

Tipo SQL Server restituito: geometry

Tipo CLR restituito: SqlGeometry

Osservazioni:

Questo metodo restituisce sempre Null se gli identificatori SRID delle istanze geometry non corrispondono. Il risultato può contenere segmenti di arco circolare solo se le istanze di input contengono segmenti di arco circolare.

Esempi

R. Calcolo della differenza simmetrica di due istanze Polygon

Nell'esempio seguente viene utilizzato STSymDifference() per calcolare la differenza simmetrica tra due istanze Polygon.

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. Calcolo della differenza simmetrica tra un'istanza CurvePolygon e un'istanza Polygon

Nell'esempio seguente viene restituito GeometryCollection che rappresenta la differenza simmetrica tra CurvePolygon e 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. Utilizzo di STSymDifference() in un'istanza CurvePolygon con un'istanza Polygon inscritta

Nell'esempio seguente viene restituita un'istanza CurvePolygon con un anello Polygon interno che rappresenta la differenza simmetrica tra le due istanze confrontate.

 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();

Vedi anche

Metodi OGC sulle istanze di geometria