STCurveN (type de données geography)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Retourne la courbe spécifiée à partir d’une instance geography qui est LineString, CircularString ou CompoundCurve.
Syntaxe
.STCurveN( n )
Arguments
n
Expression int comprise entre 1 et le nombre de courbes de l’instance geography.
Types de retour
Type de retour SQL Server : geography
Type de retour CLR : SqlGeography
Exceptions
Si n < 1, ArgumentOutOfRangeException est levé.
Remarques
NULL est retourné en présence des critères suivants.
L’instance geography est déclarée, mais n’est pas instanciée
L’instance geography est vide
n dépasse le nombre de courbes dans l’instance geography (consultez STNumCurves (type de données geography)
La dimension de l’instance geography n’est pas la même (consultez STDimension (type de données geography)
Exemples
R. Utilisation de STCurveN() sur un CircularString
L’exemple suivant retourne la deuxième courbe d’une instance CircularString :
DECLARE @g geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.STCurveN(2).ToString();
L'exemple retourne.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B. Utilisation de STCurveN() sur un CompoundCurve
L’exemple suivant retourne la deuxième courbe d’une instance CompoundCurve :
DECLARE @g geography = 'COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STCurveN(2).ToString();
L'exemple retourne.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
C. Utilisation de STCurveN() sur un CompoundCurve qui contient trois CircularStrings
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 geography = 'COMPOUNDCURVE (CIRCULARSTRING (-122.358 47.653, -122.348 47.649, -122.348 47.658), CIRCULARSTRING(-122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.STCurveN(2).ToString();
L'exemple retourne.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN()
retourne les mêmes résultats indépendamment du format de texte WKT utilisé.
D. Test de validité avant d'appeler STCurve()
L’exemple suivant montre comment vérifier que n est valide avant d’appeler la méthode STCurveN() :
DECLARE @g geography;
DECLARE @n int;
SET @n = 2;
SET @g = geography::Parse('LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');
IF @n >= 1 AND @n <= @g.STNumCurves()
BEGIN
SELECT @g.STCurveN(@n).ToString();
END