Partager via


BufferWithTolerance (type de données geometry)

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

Syntaxe

.BufferWithTolerance ( distance, tolerance, relative )

Arguments

  • distance
    Expression float qui spécifie la distance à partir de l'instance geometry autour de laquelle calculer la mémoire tampon.

  • tolerance
    Expression float qui spécifie la tolérance de la distance de mémoire tampon.

    Le terme Tolérance fait référence à la variation maximale de 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.

  • relative
    bit qui spécifie si la valeur tolerance est relative ou absolue. Si 'TRUE' ou 1, la tolérance est relative et calculée comme produit du paramètre tolerance et du diamètre du cadre englobant de l'instance. 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 : geometry

Type de retour CLR : SqlGeometry

Exceptions

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

[!REMARQUE]

Puisque tolerance est de type float, un System.Runtime.InteropServices.COMException peut être levé si la valeur donnée pour la tolérance est très petite en raison de problèmes d'arrondi avec les types à virgule flottante.

Notes

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

[!REMARQUE]

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

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

Lorsque distance< 0, alors

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

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

    [!REMARQUE]

    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 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 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

Référence

STBuffer (type de données geometry)

Autres ressources

Méthodes étendues sur les instances géométriques