Partilhar via


STDifference (tipo de dados geometry)

Retorna um objeto que representa os pontos definidos de uma instância de geometry que não residem dentro de outra instância de geometry.

Sintaxe

.STDifference ( other_geometry )

Argumentos

  • other_geometry
    É outra instância de geometry indicando quais pontos devem ser removidos da instância na qual o STDifference() está sendo invocado.

Tipos de retorno

SQL Server Tipo de retorno: geometry

Tipo de retorno CLR: SqlGeometry

Comentários

Esse método sempre retornará nulo se as SRIDs (IDs de referência espacial) das instâncias de geometry não forem correspondentes. O resultado poderá conter segmentos de arco circular apenas se as instâncias de entrada contiverem segmentos de arco circulares.

Exemplos

A.Computando a diferença entre duas instâncias de polígono

O exemplo a seguir usa STDifference() para computar a diferença entre dois polígonos.

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.Invocando STDifference() em uma instância de CurvePolygon

O exemplo seguinte usa STDifference () em uma instância de 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();

Consulte também

Outros recursos

Métodos do OGC em instâncias geometry