Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Retourne une approximation de l'instance geography donnée produite 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 des instances FullGlobe ou des 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 dans l'algorithme de Douglas-Peucker. tolerance doit être un nombre positif. |
Types de retour
SQL Server type de retour : geography
Type de retour CLR : SqlGeography
Notes
Pour les types collection, cet algorithme fonctionne indépendamment sur chaque geography contenue dans l'instance. Cet algorithme ne modifie pas d'instances Point.
Cette méthode essaiera de conserver les points de terminaison d'instances LineString, mais elle peut échouer dans sa tentative afin de préserver un résultat valide.
Si Reduce() est appelé avec une valeur négative, cette méthode produira un ArgumentException. Les tolérances utilisées dans Reduce() doivent être des nombres positifs.
L'algorithme de Douglas-Peucker fonctionne sur chaque courbe ou anneau dans 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 démarrant avec le point excentré le plus lointain, jusqu'à ce qu'aucun point ne soit plus à plus de 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, 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()