Dela via


STDifference (datatyp för geometri)

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

Returnerar ett objekt som representerar punktuppsättningen från en geometriinstans som inte ligger inom en annan geometriinstans .

Syntax

  
.STDifference ( other_geometry )  

Arguments

other_geometry
Är en annan geometriinstans som anger vilka punkter som ska tas bort från den instans som STDifference() anropas.

Return Types

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 skillnaden mellan två Polygon-instanser

I följande exempel används STDifference() för att beräkna skillnaden mellan två polygoner.

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. Anropa STDifference() på en CurvePolygon-instans

I följande exempel används STDifference() på en CurvePolygon-instans.

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

See Also

OGC-metoder för geometriinstanser