STSymDifference (tipo de datos geometry)

Devuelve un objeto que representa todos los puntos que están en una instancia de geometry o en otra instancia de geometry, pero no los puntos que pertenecen a ambas instancias.

Sintaxis

.STSymDifference ( other_geometry )

Argumentos

  • other_geometry
    Es la otra instancia de geometry que se va a comparar con la instancia en la que se invoca STSymDistance().

Tipos de valores devueltos

SQL Server tipo de valor devuelto: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Comentarios

Este método siempre devuelve NULL si no coinciden los identificadores de referencia espacial (SRID) de las instancias de geometry. El resultado puede contener segmentos de arco circulares solo si las instancias de entrada contienen segmentos de arco circulares.

Ejemplos

A.Calcular la diferencia simétrica entre dos instancias de Polygon

En el ejemplo siguiente se utiliza STSymDifference() para calcular la diferencia simétrica entre dos instancias de Polygon.

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.Calcular la diferencia simétrica entre una instancia de CurvePolygon y una instancia de Polygon

En el siguiente ejemplo se devuelve un objeto GeometryCollection que representa la diferencia simétrica entre un objeto CurvePolygon y un objeto 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.Usar STSymDifference () en una instancia de CurvePolygon con una instancia de Polygon inscrita

En el siguiente ejemplo se devuelve una instancia de CurvePolygon con un anillo Polygon interior que representa la diferencia simétrica entre las dos instancias comparadas.

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

Vea también

Otros recursos

Métodos de OGC en instancias de geometry