Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Restituisce un oggetto che rappresenta tutti i punti che si trovano in un'istanza geometry o in 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 STSymDistance() viene richiamato.
Tipi restituiti
SQL Server tipo restituito: geometry
CLR - Tipo 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
A.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();