STSymDifference (datatyp för geometri)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar ett objekt som representerar alla punkter som antingen finns i en geometriinstans eller en annan geometriinstans , men inte de punkter som ligger i båda instanserna.

Syntax

  
.STSymDifference ( other_geometry )  

Arguments

other_geometry
Är en annan geometriinstans utöver den instans som STSymDifference() anropas.

Returtyper

SQL Server-returtyp: geometri

CLR-returtyp: SqlGeometry

Remarks

Den här metoden returnerar alltid null om de rumsliga referens-ID:erna (SRID) för geometriinstanserna inte matchar. Resultatet kan endast innehålla cirkulära bågsegment om indatainstanserna innehåller cirkulära bågsegment.

Examples

A. Beräkna den symmetriska skillnaden mellan två Polygon-instanser

I följande exempel används STSymDifference() för att beräkna den symmetriska skillnaden mellan två Polygon instanser.

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. Beräkna den symmetriska skillnaden mellan en CurvePolygon och en Polygon-instans

I följande exempel returneras en GeometryCollection som representerar den symmetriska skillnaden mellan en CurvePolygon och en 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. Använda STSymDifference() på CurvePolygon-instans med en inskriven Polygon-instans

I följande exempel returneras en CurvePolygon instans med en inre Polygon ring som representerar den symmetriska skillnaden mellan de två instanserna jämfört med.

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

Se även

OGC-metoder för geometriinstanser