Partager via


BufferWithTolerance (type de données geometry)

S’applique à : SQL ServerAzure SQL Database Azure SQL Managed Instance

Retourne un objet géométrique qui représente l’union de toutes les valeurs de points dont la distance par rapport à une instance geometry est inférieure ou égale à une valeur spécifique, en tenant compte d’une tolérance spécifique.

Syntaxe

  
.BufferWithTolerance ( distance, tolerance, relative )  

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

distance
Expression float spécifiant la distance de l’instance geometry autour de laquelle calculer la mémoire tampon.

tolerance
Expression float spécifiant la tolérance de la distance de mémoire tampon.

Tolerance fait référence à la variation maximale dans la distance de mémoire 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.

relative
bit spécifiant si la valeur de tolerance est relative ou absolue. Si la valeur est « TRUE » ou 1, la tolérance est relative et calculée sous la forme du produit du paramètre tolerance et du diamètre du rectangle englobant de l’instance. Si la valeur est « FALSE » ou 0, la tolérance est absolue et la valeur de tolerance représente la variation maximale absolue dans la distance de mémoire tampon idéale pour l’approximation linéaire retournée.

Types de retour

Type de retour SQL Server : geometry

Type de retour CLR : SqlGeometry

Exceptions

Le paramètre tolerance doit être supérieur à zéro. Si tolérance<= 0, un System.ArgumentOutOfRangeException est levé.

Notes

Dans la mesure où tolerance est de type float, System.Runtime.InteropServices.COMException peut être levé si la valeur de tolérance est très petite en raison de problèmes d’arrondi avec les types à virgule flottante.

Remarques

Quand distance> 0, une instance Polygon ou MultiPolygon est retournée.

Notes

Dans la mesure où distance est de type float, une valeur extrêmement petite peut être équivalente à zéro dans les calculs. Quand cela se produit, une copie de l’instance geometry appelante est retournée. Consultez float et real (Transact-SQL).

Quand distance = 0, une copie de l’instance geometry appelante est retournée.

Quand distance< 0, alors

  • Une instance GeometryCollection vide est retournée quand les dimensions de l’instance sont 0 ou 1.

  • Une mémoire tampon négative est retournée lorsque les dimensions de l'instance sont de 2 ou plus.

    Notes

    Une mémoire tampon négative peut également créer une instance GeometryCollection vide.

Une mémoire tampon négative supprime tous les points dans la distance donnée de la limite de l’instance geometry.

L’erreur entre la mémoire tampon théorique et la mémoire tampon calculée correspond à max(tolérance, étendues * 1.E-7), où la tolérance représente la valeur du paramètre tolérance. Pour plus d’informations sur les étendues, consultez Référence de méthodes de type de données geometry.

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 geometry;  
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);  
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();  

Voir aussi

STBuffer (type de données geometry)
Méthodes étendues sur les instances géométriques