Share via


Reduce (type de données geography)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Retourne une approximation de l’instance geography donnée en exécutant l’algorithme de Douglas-Peucker sur l’instance, avec la tolérance donnée.

Cette méthode de type de données geography prend en charge les instances FullGlobe ou les instances spatiales qui sont plus grandes qu’un hémisphère.

Syntaxe

  
.Reduce ( tolerance )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

Terme Définition
tolerance Valeur de type float. tolerance est la tolérance à entrer pour l’algorithme Douglas-Peucker. tolerance doit être un nombre positif.

Types de retour

Type de retour SQL Server : geography

Type de retour CLR : SqlGeography

Notes

Pour les types de collection, cet algorithme fonctionne indépendamment sur chaque geography contenu dans l’instance. Cet algorithme ne modifie pas les instances Point.

Cette méthode tente de conserver les points de terminaison des instances LineString, mais elle peut ne pas y parvenir si elle a pour but de conserver un résultat valide.

Si Reduce() est appelé avec une valeur négative, cette méthode lève ArgumentException. Les tolérances utilisées dans Reduce() doivent être des nombres positifs.

L’algorithme Douglas-Peucker fonctionne sur chaque courbe ou anneau de l’instance geography en supprimant tous les points, à l’exception du point de départ et du point de terminaison. Chaque point supprimé est ensuite rajouté, en commençant par le point excentré le plus lointain, jusqu’à ce qu’aucun point ne soit à plus de la valeur tolerance du résultat. Le résultat est ensuite rendu valide si nécessaire, dans la mesure où un résultat valide est garanti.

Dans SQL Server 2012 (11.x), cette méthode a été étendue aux instances FullGlobe.

Cette méthode n'est pas précise.

Exemples

L'exemple suivant crée une instance LineString et utilise Reduce() afin de simplifier l'instance.

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

Voir aussi

Méthodes étendues sur des instances geography