Udostępnij przez


STSymDifference (geometryczny typ danych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca obiekt reprezentujący wszystkie punkty, które znajdują się w jednym wystąpieniu geometrii lub w innym wystąpieniu geometrii , ale nie w tych punktach, które znajdują się w obu wystąpieniach.

Syntax

  
.STSymDifference ( other_geometry )  

Arguments

other_geometry
Jest innym wystąpieniem geometrycznym oprócz wystąpienia, na którym STSymDifference() jest wywoływane.

Typy zwracane

Zwracany typ programu SQL Server: geometria

Typ zwracania CLR: SqlGeometry

Remarks

Ta metoda zawsze zwraca wartość null, jeśli identyfikatory odwołań przestrzennych (SRID) wystąpień geometrii nie są zgodne. Wynik może zawierać segmenty łuku cyklicznego tylko wtedy, gdy wystąpienia wejściowe zawierają segmenty łuku cyklicznego.

Examples

A. Obliczanie symetrycznej różnicy między dwoma wystąpieniami wielokątowymi

W poniższym przykładzie użyto STSymDifference() metody do obliczenia symetrycznej różnicy między dwoma Polygon wystąpieniami.

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. Obliczanie różnicy symetrycznej między elementem CurvePolygon i wystąpieniem wielokąta

W poniższym przykładzie zwracana jest wartość GeometryCollection reprezentująca symetryczną różnicę między elementem a a CurvePolygon 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. Używanie klasy STSymDifference() w wystąpieniu CurvePolygon z przypisanym wystąpieniem wielokąta

Poniższy przykład zwraca CurvePolygon wystąpienie z pierścieniem wewnętrznym Polygon reprezentującym symetryczną różnicę między dwoma wystąpieniami w porównaniu.

 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 też

metody OGC w wystąpieniach geometrycznych