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 geométrico que representa a união de todos os valores de ponto cuja distância de uma ocorrência geográfica é menor ou igual a um valor especificado, permitindo uma tolerância especificada.
Esse método de tipo de dados geográficos oferece suporte a instâncias FullGlobe ou instâncias espaciais maiores que um hemisfério.
Syntax
.BufferWithTolerance ( distance, tolerance, relative )
Arguments
Distância
É uma expressão float que especifica a distância da ocorrência geográfica em torno da qual calcular o buffer.
A distância máxima do buffer não pode exceder 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 circunferência da Terra) ou o globo completo.
tolerance
É uma expressão float que especifica a tolerância da distância do buffer.
A variação máxima na distância de buffer ideal para a aproximação linear retornada é o valor de tolerância .
Por exemplo, a distância de buffer ideal de um ponto é um círculo, mas essa distância deve ser aproximada por um polígono. Quanto menor a tolerância, mais pontos o polígono terá. Este resultado aumenta a complexidade do resultado, mas minimiza o erro.
O limite mínimo é de 0,1% da distância, e qualquer tolerância inferior a essa será arredondada para o limite mínimo.
relative
É um pouco especificando se o valor de tolerância é relativo ou absoluto. Se o valor for 'TRUE' ou 1, a tolerância é relativa. Este valor é o produto do parâmetro de tolerância e da extensão angular * raio equatorial do elipsoide. A tolerância é absoluta se o valor for 'FALSE' ou 0. Este valor de tolerância é a variação máxima absoluta na distância ideal do buffer para a aproximação linear retornada.
Tipos de devolução
Tipo de retorno do SQL Server: geografia
Tipo de retorno CLR: SqlGeography
Remarks
Este método lança um ArgumentException se a distância não for um número (NAN), ou se a distância for infinito positivo ou negativo. Esse método também lança um ArgumentException se a tolerância for zero (0), não um número (NaN), negativo ou infinito positivo ou negativo.
STBuffer() retornará uma instância FullGlobe em certos casos; por exemplo, STBuffer() retorna uma ocorrência de FullGlobe em dois polos quando a distância do buffer é maior do que a distância do equador aos polos.
Esse método lançará um ArgumentException em instâncias FullGlobe onde a distância do buffer excede a seguinte limitação:
0,999 * π * menorEixo * menorEixo / maiorEixo (~0,999 * 1/2 circunferência da Terra)
O erro entre o buffer teórico e calculado é max(tolerância, extensões * 1.E-7), onde tolerância é o valor do parâmetro de tolerância . Para obter mais informações sobre extensões, consulte geografia Referência do método de tipo de dados.
Este método não é preciso.
Examples
O exemplo a seguir cria uma Point instância e usa BufferWithTolerance() para obter um buffer aproximado em torno dela.
DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Ver também
STBuffer (tipo de dados geográficos)
Métodos estendidos em instâncias geográficas