BufferWithTolerance (tipo de dados geography)
Retorna um objeto geométrico que representa a união de todos os valores de pontos cuja distância em relação a uma instância geography seja menor ou igual a um valor especificado, o que permite uma tolerância especificada.
Este método de tipo de dados geography dá suporte a instâncias FullGlobe ou a instâncias espaciais maiores que um hemisfério.
Sintaxe
.BufferWithTolerance ( distance, tolerance, relative )
Argumentos
distance
É uma expressão float que especifica a distância em relação à instância geography ao redor da qual o buffer será calculado.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 inteiro.
tolerance
É uma expressão float que especifica a tolerância da distância do buffer.O valor de 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 ideal de buffer de um ponto é um círculo, mas 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.
O limite mínimo é 0,1 por cento da distância; qualquer tolerância menor que isso será arredondada até o limite mínimo.
relative
É um bit que especifica se o valor tolerance é relativo ou absoluto. Se for 'TRUE' ou 1, a tolerância será relativa e calculada como o produto do parâmetro tolerance e do raio equatorial da extensão angular * da elipsoide. Se for 'FALSE' ou 0, a tolerância será absoluta e o valor de tolerance será a variação máxima absoluta na distância do buffer ideal para a aproximação linear retornada.
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Comentários
Este método gerará um ArgumentException se o distance for NAN (não é um número) ou se distance for infinidade positiva ou negativa. Este método também gerará uma ArgumentException se tolerance for 0 (zero), NaN (não é um número), negativo ou infinidade positiva ou negativa.
STBuffer() retorna uma instância FullGlobe em certos casos; por exemplo, STBuffer() retorna uma instância FullGlobe em dois pólos quando a distância do buffer é maior que a distância do Equador para os pólos.
Esse método gera uma ArgumentException em instâncias de FullGlobe nas quais a distância do buffer excede a seguinte limitação:
0,999 * π * minorAxis * minorAxis/majorAxis (~ 0,999 * 1/2 circunferência da Terra)
O erro entre o buffer teórico e o computado é max(tolerance, extents * 1.E-7) onde tolerance é o valor do parâmetro tolerance. Para obter mais informações sobre extents, consulte Referência de método de tipo de dados geography.
Esse método não é preciso.
Exemplos
O exemplo a seguir cria uma instância Point e usa BufferWithTolerance() para obter um buffer grosseiro à sua volta.
DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Consulte também
Referência
STBuffer (tipo de dados geography)