Reduce (tipo de datos geography)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve una aproximación de la instancia de geography especificada que se genera al aplicar el algoritmo de Douglas-Peucker a la instancia con la tolerancia indicada.

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

Sintaxis

  
.Reduce ( tolerance )  

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

Término Definición
tolerance Es un valor de tipo float. tolerance es la tolerancia que se usa como entrada para el algoritmo de Douglas-Peucker. tolerance debe ser un número positivo.

Tipos de valor devuelto

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Observaciones

Para los tipos de colección, este algoritmo funciona independientemente en cada tipo geography contenido en la instancia. Este algoritmo no modifica las instancias de Point.

Este método intentará conservar los extremos de las instancias de LineString, pero es posible que no pueda hacerlo para mantener un resultado válido.

Si se llama a Reduce() con un valor negativo, este método generará una ArgumentException. Las tolerancias utilizadas en Reduce() deben ser números positivos.

El algoritmo de Douglas Peucker funciona en cada curva o anillo de la instancia de geography quitando todos los puntos excepto el de inicio y el final. Después, cada punto quitado se agrega de nuevo, comenzando con el punto periférico más lejano, hasta que no haya ningún punto más allá de tolerance del resultado. A continuación, el resultado se convierte en válido, si es necesario, cuando se garantiza un resultado válido.

En SQL Server 2012 (11.x), este método se ha extendido a las instancias de FullGlobe.

Este método no es preciso.

Ejemplos

En el ejemplo siguiente se crea una instancia sencilla de LineString y se utiliza Reduce() para simplificar la instancia.

DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'  
SELECT @g.Reduce(10000).ToString()  

Consulte también

Métodos extendidos en instancias de geography