Udostępnij za pośrednictwem


STSymDifference (geometry Data Type)

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.

Składnia

.STSymDifference ( other_geometry )

Arguments

  • other_geometry
    Is another geometry instance in addition to the instance on which STSymDistance() is being invoked.

Return Types

SQL Server return type: geometry

CLR return type: SqlGeometry

Uwagi

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.

Examples

A. Computing the symmetric difference of two Polygon instances

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

B. Computing the symmetric difference between a CurvePolygon and a Polygon instance

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

C. Using STSymDifference() on CurvePolygon instance with an inscribed Polygon instance

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

Zobacz także

Inne zasoby

OGC Methods on Geometry Instances