Condividi tramite


STDifference (tipo di dati geometry)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric

Restituisce un oggetto che rappresenta il punto impostato da un'istanza geometry che non si trova all'interno di un'altra istanza geometry.

Sintassi

  
.STDifference ( other_geometry )  

Argomenti

other_geometry
Altra istanza geometry che indica i punti da rimuovere dall'istanza sulla quale viene richiamato STDifference().

Tipi restituiti

Tipo SQL Server restituito: geometry

Tipo CLR restituito: SqlGeometry

Osservazioni:

Questo metodo restituisce sempre Null se gli identificatori SRID delle istanze geometry non corrispondono. Il risultato può contenere segmenti di arco circolare solo se le istanze di input contengono segmenti di arco circolare.

Esempi

R. Calcolo della differenza tra due istanze Polygon

Nell'esempio seguente viene utilizzato STDifference() per calcolare la differenza tra due poligoni.

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. Chiamata di STDifference() in un'istanza CurvePolygon

Nell'esempio seguente viene utilizzato STDifference() in un'istanza CurvePolygon.

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

Vedi anche

Metodi OGC sulle istanze di geometria