Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base 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();