BufferWithTolerance (type de données geography)
Retourne un objet géométrique qui représente l'union de toutes les valeurs de points dont la distance d'une instance geography est inférieure ou égale à une valeur spécifiée, en tenant compte d'une tolérance spécifié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
.BufferWithTolerance ( distance, tolerance, relative )
Arguments
distance
Expression float qui spécifie la distance à partir de l'instance geography autour de laquelle calculer la mémoire tampon.La distance maximale de la mémoire tampon ne peut pas dépasser 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 la circonférence de la terre) ou le globe complet.
tolerance
Expression float qui spécifie la tolérance de la distance de mémoire tampon.La valeur de tolérance fait référence à la variation maximale dans la distance de tampon idéale pour l'approximation linéaire retournée.
Par exemple, la distance de mémoire tampon idéale d'un point est un cercle, mais elle doit être exprimée de façon à se rapprocher d'un polygone. Plus la tolérance est petite, plus le polygone aura de points, ce qui augmente la complexité du résultat mais décroît l'erreur.
La limite minimum est de 0,1 pour cent de la distance, plus toute tolérance inférieure à la valeur qui sera arrondie à la limite minimale.
relative
bit qui spécifie si la valeur tolerance est relative ou absolue. Si « TRUE » ou 1 est définie, la tolérance est relative et calculée comme produit du paramètre tolerance et de l'étendue angulaire * le rayon équatorial de l'ellipsoïde. Si « FALSE » ou 0 est défini, la tolérance est absolue et la valeur tolerance est la variation maximale absolue dans la distance de tampon idéale pour l'approximation linéaire retournée.
Types de retour
SQL Server type de retour : geography
Type de retour CLR : SqlGeography
Notes
Cette méthode lève un ArgumentException si la distance n'est pas un nombre (NAN), ou si la distance est l'infini positif ou négatif. Cette méthode lève également un ArgumentException si tolerance est nul (0), n'est pas un nombre (NaN), infini négatif ou positif.
STBuffer() retournera une instance FullGlobe dans certains cas ; par exemple, STBuffer() retourne une instance FullGlobe sur deux pôles lorsque la distance de mémoire tampon est supérieure à la distance de l'équateur aux pôles.
Cette méthode lève un ArgumentException dans les instances FullGlobe où la distance de la mémoire tampon dépasse la limitation suivante :
0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 la circonférence de la terre)
L'erreur entre la mémoire tampon théorique et la mémoire tampon calculée est max(tolerance, extents * 1.E-7) où tolerance représente la valeur du paramètre tolerance. Pour plus d'informations sur extents, consultez Référence de méthodes de type de données geography.
Cette méthode n'est pas précise.
Exemples
L'exemple suivant crée une instance Point et utilise BufferWithTolerance() pour obtenir une estimation grossière de la mémoire tampon autour d'elle.
DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Voir aussi
Référence
STBuffer (type de données geography)