BufferWithTolerance (tipo de datos geography)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve un objeto geométrico que representa la unión de todos los valores de puntos cuya distancia desde una instancia de geography es menor o igual que un valor especificado, permitiendo una tolerancia determinada.

Este método del tipo de datos geography admite instancias de FullGlobe o instancias espaciales mayores que un hemisferio.

Sintaxis

  
.BufferWithTolerance ( distance, tolerance, relative )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

distance
Es una expresión float que especifica la distancia desde la instancia de geography en torno a la que se va a calcular el búfer.

La distancia máxima del búfer no puede ser superior a 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 circunferencia terráquea) o todo el globo terráqueo.

tolerance
Es una expresión float que especifica la tolerancia de la distancia del búfer.

El valor tolerance hace referencia a la variación máxima en la distancia del búfer idónea para la aproximación lineal devuelta.

Por ejemplo, la distancia de búfer idónea de un punto es un círculo, pero esta distancia se debe aproximar mediante un polígono. Cuanto menor sea la tolerancia, más puntos tendrá el polígono. Este resultado aumenta la complejidad del resultado, pero reduce el error.

El límite mínimo es el 0,1 por ciento de la distancia, y cualquier tolerancia menor se redondeará hasta el límite mínimo.

relative
Es un valor bit que especifica si el valor tolerance es relativo o absoluto. Si el valor es "TRUE" o 1, la tolerancia es relativa. Este valor es el producto del parámetro tolerance y la extensión angular * el radio ecuatorial de la elipsoide. La tolerancia es absoluta si el valor es "FALSE" o 0. El valor de tolerance es la variación máxima absoluta en la distancia del búfer idónea para la aproximación lineal devuelta.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Observaciones

Este método produce una excepción ArgumentException si distance no es un número (NAN) o si distance es infinito positivo o negativo. Este método también produce una excepción ArgumentException si tolerance es cero (0), no es un número (NAN), es negativo o si es infinito positivo o negativo.

STBuffer() devuelve una instancia de FullGlobe en determinados casos; por ejemplo, STBuffer() devuelve una instancia de FullGlobe en dos polos cuando la distancia del búfer es mayor que la distancia desde el ecuador a los polos.

Este método produce una excepción ArgumentException en las instancias de FullGlobe donde la distancia del búfer supera la siguiente limitación:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 circunferencia terráquea)

El error entre el búfer teórico y el calculado es max(tolerance, extents * 1.E-7), donde tolerance es el valor del parámetro tolerance. Para más información sobre las extensiones, vea Referencia de los métodos del tipo de datos geography.

Este método no es exacto.

Ejemplos

En el ejemplo siguiente se crea una instancia de Point y se usa BufferWithTolerance() para obtener un búfer aproximado a su alrededor.

DECLARE @g geography;  
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();  

Vea también

STBuffer (tipo de datos geography)
Métodos extendidos en instancias de geography