Partager via


STCurveN (type de données geometry)

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

Retourne la courbe spécifiée à partir d’une instance geometry qui est LineString, CircularString, CompoundCurve ou MultiLineString.

Syntaxe

  
.STCurveN ( curve_index )  

Arguments

curve_index
Expression int comprise entre 1 et le nombre de courbes de l’instance geometry.

Types de retour

Type de retour SQL Server : geometry

Type de retour CLR : SqlGeometry

Exceptions

Si curve_index< 1, ArgumentOutOfRangeException est levé.

Remarques

NULL est retourné dans l’une des situations suivantes :

  • L’instance geometry est déclarée, mais pas instanciée

  • L’instance geometry est vide

  • curve_index dépasse le nombre de courbes de l’instance geometry

  • L’instance geometry est une instance Point, MultiPoint, Polygon, CurvePolygon ou MultiPolygon

Exemples

R. Utilisation de STCurveN() sur une instance CircularString

L'exemple suivant retourne la deuxième courbe dans une instance CircularString :

 DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';  
 SELECT @g.STCurveN(2).ToString();

L'exemple précédent de cette rubrique retourne :

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

B. Utilisation de STCurveN() sur une instance CompoundCurve avec une instance CircularString

L'exemple suivant retourne la deuxième courbe dans une instance CompoundCurve :

 DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

L'exemple précédent de cette rubrique retourne :

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

C. Utilisation de STCurveN() sur une instance CompoundCurve avec trois instances CircularString

L'exemple suivant utilise une instance CompoundCurve qui combine trois instances CircularString distinctes dans la même séquence de courbes que l'exemple précédent :

 DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

L'exemple précédent de cette rubrique retourne :

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

Notez que les résultats sont les mêmes pour les trois exemples précédents. Quel que soit le format WKT (Well-known Text) utilisé pour entrer la même séquence de courbes, les résultats retournés par STCurveN() sont identiques lorsqu'une instance CompoundCurve est utilisée.

D. Validation du paramètre avant d'appeler STCurveN()

L’exemple suivant montre comment vérifier que @n est valide avant d’appeler la méthode STCurveN() :

 DECLARE @g geometry;  
 DECLARE @n int;  
 SET @n = 3;  
 SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END

Voir aussi

STNumCurves (type de données geometry)
Méthodes OGC sur des instances geography