Returns an object that represents all points that are either in one geometry instance or another geometry instance, but not those points that lie in both instances.
.STSymDifference ( other_geometry )
other_geometry
Is another geometry instance in addition to the instance on which STSymDistance()
is being invoked.
SQL Server return type: geometry
CLR return type: SqlGeometry
This method always returns null if the spatial reference IDs (SRIDs) of the geometry instances do not match. The result may contain circular arc segments only if the input instances contain circular arc segments.
The following example uses STSymDifference()
to compute the symmetric difference of two Polygon
instances.
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();
The following example returns a GeometryCollection
that represents the symmetric difference between a CurvePolygon
and a 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();
The following example returns a CurvePolygon
instance with an interior Polygon
ring that represents the symmetric difference between the two instances compared.
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();