Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 de geometria é menor ou igual a um valor especificado, permitindo uma tolerância especificada.
Syntax
.BufferWithTolerance ( distance, tolerance, relative )
Arguments
Distância
É uma expressão float que especifica a distância da instância de geometria em torno da qual calcular o buffer.
tolerance
É uma expressão float que especifica a tolerância da distância do buffer.
A tolerância refere-se à variação máxima na distância ideal do buffer para a aproximação linear retornada.
Por exemplo, a distância de buffer ideal de um ponto é um círculo, mas isso deve ser aproximado por um polígono. Quanto menor a tolerância, mais pontos o polígono terá, o que aumenta a complexidade do resultado, mas diminui o erro.
relative
É um pouco especificando se o valor de tolerância é relativo ou absoluto. Se 'TRUE' ou 1, então a tolerância é relativa e é calculada como o produto do parâmetro de tolerância e o diâmetro da caixa delimitadora da instância. Se 'FALSE' ou 0, a tolerância é absoluta e o valor da tolerância é a variação máxima absoluta na distância ideal do buffer para a aproximação linear devolvida.
Tipos de devolução
Tipo de retorno do SQL Server: geometria
Tipo de retorno CLR: SqlGeometry
Exceptions
O parâmetro de tolerância deve ser superior a zero. Se tolerância< = 0, então um System.ArgumentOutOfRangeException é lançado.
Note
Como a tolerânciaé um tipo flutuante, um System.Runtime.InteropServices.COMException pode ser lançado se o valor dado para tolerância for muito pequeno devido aos problemas de arredondamento com tipos de ponto flutuante.
Remarks
Quando a distância> 0, uma instância de Polygon ou MultiPolygon é retornada.
Note
Como a distância é um flutuador, um valor extremamente pequeno pode equivaler a zero nos cálculos. Quando isso ocorre, uma cópia da instância de geometria de chamada é retornada. Veja float e real (Transact-SQL).
Quando distância = 0, uma cópia da instância de geometria de chamada é retornada.
Quando a distância< 0 então
Uma instância GeometryCollection vazia é retornada quando as dimensões da instância são 0 ou 1.
Um buffer negativo é retornado quando as dimensões da instância são 2 ou mais.
Note
Um buffer negativo também pode criar uma instância GeometryCollection vazia.
Um buffer negativo remove todos os pontos dentro da distância dada do limite da instância de geometria .
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 Referência do método de tipo de dados de geometria.
Examples
O exemplo a seguir cria uma Point instância e usa BufferWithTolerance() para obter um buffer aproximado em torno dela.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Ver também
STBuffer (tipo de dados de geometria)
Métodos estendidos em instâncias de geometria