Reduce (tipo de dados geography)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Retorna uma aproximação da instância de geography fornecida produzida pela execução do algoritmo de Douglas-Peucker na instância com a tolerância indicada.
Esse método de tipo de dados de geography é compatível com instâncias FullGlobe ou 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 de Douglas-Peucker. tolerance precisa ser um número positivo. |
Tipos de retorno
Tipo de retorno do SQL Server: geography
Tipo de retorno do CLR: SqlGeography
Comentários
Para tipos de coleção, esse algoritmo funciona de forma independente em cada geografia contida na instância. Esse algoritmo não modifica as instâncias de Point.
Esse método tentará preservar os pontos de extremidade das instâncias de LineString, mas talvez não consiga fazer isso para assegurar que o resultado seja válido.
Se Reduce()
for chamado com um valor negativo, esse método gerará uma 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 de geography, removendo todos os pontos, exceto o ponto inicial e o ponto de final. Cada ponto removido é adicionado novamente, começando com o ponto mais distante, até que nenhum ponto esteja a mais do que a tolerância do resultado. O resultado é então validado, se necessário, pois um resultado válido é garantido.
No SQL Server 2012 (11.x), esse método foi estendido para as instâncias de 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()