Share via


BufferWithTolerance (tipo de datos geography)

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, posibilitando así una tolerancia especificada.

Este método de tipo de datos de geografía admite instancias de FullGlobe o instancias espaciales mayores que un hemisferio.

Sintaxis

.BufferWithTolerance ( distance, tolerance, relative )

Argumentos

  • distance
    Es una expresión float que especifica la distancia desde la instancia de geography alrededor de la cual se puede calcular el búfer.

    La distancia máxima del búfer no puede superar 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 de búfer.

    El valor tolerancia hace referencia a la variación máxima en la distancia de búfer ideal para la aproximación lineal devuelta.

    Por ejemplo, la distancia de búfer ideal de un punto es un círculo, pero un círculo debe conseguirse de forma aproximada mediante un polígono. Cuanto más pequeña sea la tolerancia, más puntos tendrá el polígono, lo que aumenta la complejidad del resultado, pero disminuye 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 es TRUE o 1, la tolerancia es relativa y se calcula como el producto del parámetro tolerance y la magnitud angular * el radio ecuatorial de la elipsoide. Si es FALSE o 0, la tolerancia es absoluta y el valor tolerance es la variación máxima absoluta en la distancia de búfer ideal para la aproximación lineal devuelta.

Tipos de valores devueltos

SQL Server tipo de valor devuelto: geography

Tipo de valor devuelto de CLR: SqlGeography

Comentarios

Este método iniciará 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 iniciará una excepción ArgumentException si tolerance es cero (0) y no un número (NaN), un número negativo o infinito positivo o negativo.

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

Este método producirá 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 calculado y el teórico es max(tolerance, extents * 1.E-7) donde tolerance es el valor del parámetro tolerance. Para obtener más información sobre extents, vea Referencia de los métodos del tipo de datos geography.

Este método no es preciso.

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

Referencia

STBuffer (tipo de datos geography)

Otros recursos

Métodos extendidos en instancias de geography