Freigeben über


STSymDifference (geometry-Datentyp)

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 )

Argumente

  • other_geometry
    Eine andere geometry-Instanz zusätzlich zu der Instanz, in der STSymDistance() 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 Polygon darstellt.

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

Siehe auch

Andere Ressourcen

OGC-Methoden für geomety-Instanzen