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