Freigeben über


STDifference (geometry-Datentyp)

Gibt ein Objekt zurück, das die Punktmenge einer geometry-Instanz darstellt, die sich nicht innerhalb einer anderen geometry-Instanz befindet.

Syntax

.STDifference ( other_geometry )

Argumente

  • other_geometry
    Eine andere geometry-Instanz, die angibt, welche Punkte aus der Instanz zu entfernen sind, in der STDifference() 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 Unterschieds zwischen zwei Polygoninstanzen

Im folgenden Beispiel wird STDifference() zum Berechnen der Differenz zwischen zwei Polygonen 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.STDifference(@h).ToString();

B.Aufrufen von STDifference() in einer CurvePolygon-Instanz

Im folgenden Beispiel wird STDifference() in einer CurvePolygon-Instanz verwendet.

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

-- Note the different results returned by the two SELECT statements

SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

Siehe auch

Andere Ressourcen

OGC-Methoden für geomety-Instanzen