Share via


STSymDifference (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt ein Objekt zurück, das alle Punkte darstellt, die sich entweder in einer geometry -Instanz oder in einer anderen geometry -Instanz befinden, nicht jedoch die Punkte, die sich innerhalb beider Instanzen befinden.

Syntax

  
.STSymDifference ( other_geometry )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

other_geometry
Eine andere geometry -Instanz zusätzlich zu der Instanz, in der STSymDifference() aufgerufen wird.

Rückgabetypen

SQL Server-Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Hinweise

Diese Methode gibt immer NULL zurück, wenn die SRIDs (Spatial Reference IDs) der geometry -Instanzen nicht übereinstimmen. Im Ergebnis können nur dann Kreisbogensegmente enthalten sein, wenn die Eingabeinstanzen auch Kreisbogensegmente enthalten.

Beispiele

A. Berechnen des symmetrischen Unterschiedes zweier Polygon-Instanzen

Im folgenden Beispiel wird STSymDifference() zum Berechnen der symmetrischen Differenz zweier Polygon -Instanzen verwendet.

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. Berechnen des symmetrischen Unterschiedes zwischen einer CurvePolygon- und einer Polygon-Instanz

Im folgenden Beispiel wird eine GeometryCollection zurückgegeben, die den symmetrischen Unterschied zwischen einem CurvePolygon und einem Polygondarstellt.

 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. Verwenden von STSymDifference() in einer CurvePolygon-Instanz mit einer Polygoninstanz

Im folgenden Beispiel wird eine Instanz von CurvePolygon mit dem inneren Ring einer Instanz von Polygon zurückgegeben, der den symmetrischen Unterschied zwischen den beiden Instanzen darstellt.

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

Weitere Informationen

OGC-Methoden für geometry-Instanzen