STCurveN (type de données geometry)
Retourne la courbe spécifiée à partir d'une instance geometry de type LineString, CircularString, CompoundCurve ou MultiLineString.
S'applique à : SQL Server (SQL Server 2012 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
Syntaxe
.STCurveN ( curve_index )
Arguments
- curve_index
Expression int comprise entre 1 et le nombre de courbes dans l'instance geometry.
Types de retour
SQL Server type de retour : geometry
Type de retour CLR : SqlGeometry
Exceptions
Si curve_index 1, un <ArgumentOutOfRangeException est levé.
Notes
NULL est retourné lorsque l'un des éléments suivants se produit :
l'instance geometry est déclarée, mais non instanciée ;
l'instance geometry est vide ;
curve_index dépasse le nombre de courbes dans l'instance geometry ;
l'instance geometry est de type Point, MultiPoint, Polygon, CurvePolygon ou MultiPolygon.
Exemples
A.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 indique comment s'assurer 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
Référence
STNumCurves (type de données geometry)