Reduce (tipo de dados geography)
Retorna uma aproximação de determinada instância de geography produzida pela execução do algoritmo Douglas-Peucker na instância com a tolerância especificada.
Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual). |
Esse método de tipo de dados geography oferece suporte a instâncias FullGlobe ou a instâncias espaciais maiores que um hemisfério.
Sintaxe
.Reduce ( tolerance )
Argumentos
Termo |
Definição |
tolerance |
É um valor do tipo float. tolerance é a tolerância de entrada para o algoritmo Douglas-Peucker. tolerance deve ser um número positivo. |
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Comentários
Para tipos de coleção, este algoritmo funciona independentemente em cada geography contido na instância. Esse algoritmo não modifica instâncias de Point.
Este método tentará preservar as extremidades das instâncias LineString, mas pode falhar ao fazer isso com o intuito de preservar um resultado válido.
Se Reduce() for chamado com um valor negativo, este método gerará um ArgumentException. As tolerâncias usadas em Reduce() devem ser números positivos.
O algoritmo de Douglas-Peucker funciona em cada curva ou anel na instância geography, removendo todos os pontos, exceto o ponto inicial e o ponto de final. Cada ponto removido é adicionado novamente, a partir do ponto mais externo, até que nenhum ponto seja mais do que tolerance do resultado. O resultado é então validado, se necessário, pois um resultado válido é garantido.
No SQL Server 2012, esse método foi estendido para instâncias FullGlobe.
Esse método não é preciso.
Exemplos
O exemplo a seguir cria uma instância LineString e usa Reduce() para simplificar a instância.
DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()