Reduce (type de données geography)
S’applique à : SQL Server Azure SQL Database Azure 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 )
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()