Partilhar via


STDifference (tipo de dados geográficos)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Retorna um objeto que representa o conjunto de pontos de uma ocorrência de geografia que está fora de outra ocorrência de geografia .

Syntax

  
.STDifference ( other_geography )  

Arguments

other_geography
É outra ocorrência geográfica que indica quais pontos devem ser removidos da instância na qual STDifference() está sendo invocado.

Tipos de devolução

Tipo de retorno do SQL Server: geografia

Tipo de retorno CLR: SqlGeography

Exceptions

Esse método lança um ArgumentException se a instância contém uma borda antipodal.

Remarks

Esse método sempre retorna null se os identificadores de referência espacial (SRIDs) das instâncias geográficas não corresponderem.

No SQL Server, o conjunto de possíveis resultados retornados no servidor foi estendido para instâncias FullGlobe . O SQL Server dá suporte a instâncias espaciais maiores que um hemisfério. O resultado pode conter segmentos de arco circular somente se as instâncias de entrada contiverem segmentos de arco circular. Este método não é preciso.

Examples

A. Calculando a diferença entre duas instâncias geográficas

O exemplo a seguir usa STDifference() para calcular a diferença entre duas instâncias geográficas .

DECLARE @g geography;  
DECLARE @h geography;  
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);  
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SELECT @g.STDifference(@h).ToString();  

B. Usando um FullGlobe com STDifference()

O exemplo a seguir usa FullGlobe instância. O primeiro resultado é um vazio GeometryCollection e o segundo resultado é uma Polygon instância. STDifference() Retorna um vazio GeometryCollection quando uma FullGlobe instância é o parâmetro. Cada ponto em uma instância de invocação geography está contido em uma FullGlobe instância.

 DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 DECLARE @h geography = 'FULLGLOBE';  
 SELECT @g.STDifference(@h).ToString(),  
 @h.STDifference(@g).ToString();

Ver também

Métodos OGC em instâncias geográficas