BufferWithCurves (type de données geography)
S’applique à : SQL Server
Azure SQL Database
Azure 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)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : pendant toute l’année 2024, nous allons éliminer progressivement Problèmes GitHub comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, voir :Soumettre et afficher des commentaires pour