Share via


BufferWithCurves (type de données geography)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Retourne une instance geography qui représente l’ensemble de tous les points dont la distance par rapport à l’instance geography appelante est inférieure ou égale au paramètre distance.

Syntaxe

  
.BufferWithCurves ( distance )  

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 indiquant la distance maximale à laquelle les points qui forment la mémoire tampon peuvent se trouver par rapport à l’instance geography.

Types de retour

Type de retour SQL Server : geography

Type de retour CLR : SqlGeography

Exceptions

Les critères suivants lèvent ArgumentException.

  • Aucun paramètre n'est passé à la méthode, telle que @g.BufferWithCurves()

  • Un paramètre non numérique est passé à la méthode, telle que @g.BufferWithCurves('a')

  • NULL est passé à la méthode, par exemple @g.BufferWithCurves(NULL)

Remarques

Le tableau suivant affiche les résultats retournés pour différentes valeurs de distance.

Valeur de distance Dimensions de type Type spatial retourné
distance < 0 Zéro ou une Instance GeometryCollection vide
distance < 0 Deux ou plus Instance CurvePolygon ou GeometryCollection avec une mémoire tampon négative.

Remarque : Une mémoire tampon négative peut créer un GeometryCollection vide
distance = 0 Toutes les dimensions Copie de l’instance geography appelante
distance > 0 Toutes les dimensions Instance CurvePolygon ou GeometryCollection

Notes

Dans la mesure où distance est de type float, une valeur très petite peut être équivalente à zéro dans les calculs. Quand cela se produit, une copie de l’instance geography appelante est retournée.

Si un paramètre string est passé à la méthode, il est converti en float ou lève ArgumentException.

Exemples

R. Appel de BufferWithCurves() avec une valeur de paramètre < 0 sur une instance géographique unidimensionnelle

L'exemple suivant retourne une instance GeometryCollection vide :

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(-1).ToString();

B. Appel de BufferWithCurves() avec une valeur de paramètre < 0 sur une instance géographique bidimensionnelle

L'exemple suivant retourne une instance CurvePolygon avec une mémoire tampon négative :

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-1).ToString()

C. Appel de BufferWithCurves() avec une valeur de paramètre < 0 qui retourne un GeometryCollection vide

L’exemple suivant montre ce qui se passe quand le paramètre distance est égal à -2 :

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-2).ToString();

Cette instruction SELECT retourne GEOMETRYCOLLECTION EMPTY

D. Appel de BufferWithCurves() avec une valeur de paramètre = 0

L’exemple suivant retourne une copie de l’instance geography appelante :

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(0).ToString();

E. Appel de BufferWithCurves() avec une valeur de paramètre non nulle extrêmement petite

L’exemple suivant retourne également une copie de l’instance geography appelante :

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
DECLARE @distance float = 1e-20;  
SELECT @g.BufferWithCurves(@distance).ToString();

F. Appel de BufferWithCurves() avec une valeur de paramètre > 0

L'exemple suivant retourne une instance CurvePolygon :

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(2).ToString();

G. Transmission d'un paramètre de chaîne valide

L'exemple suivant retourne la même instance CurvePolygon qu'indiqué précédemment, mais un paramètre de chaîne est passé à la méthode :

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves('2').ToString();

H. Transmission d'un paramètre de chaîne non valide

L'exemple suivant génère une erreur :

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'  
SELECT @g.BufferWithCurves('a').ToString();

Notez que les deux exemples précédents ont passé un littéral de chaîne à la méthode BufferWithCurves(). Le premier exemple fonctionne car le littéral de chaîne peut être converti en valeur numérique. Toutefois, le deuxième exemple lève un ArgumentException.

Voir aussi

Méthodes étendues sur des instances geography
BufferWithCurves (type de données geometry)