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