STCurveN (tipo de datos Geography)
Devuelve la curva especificada a partir de una instancia de geography que es LineString, CircularString o CompoundCurve.
Sintaxis
.STCurveN( n )
Argumentos
- n
Es una expresión int entre 1 y el número de curvas de la instancia de geography.
Tipos de valor devuelto
SQL Server tipo de valor devuelto: geography
Tipo de valor devuelto de CLR: SqlGeography
Excepciones
Si n < 1, se produce una excepción ArgumentOutOfRangeException.
Comentarios
Cuando se dan los criterios siguientes, se devuelve NULL.
Se declara la instancia de geography, pero no hay instancias
La instancia de geography está vacía
n es un valor mayor que el número de curvas de la instancia de geography (Vea STNumCurves (tipo de datos geography)
La dimensión de la instancia de geography no es igual a (Vea STDimension (tipo de datos geography)
Ejemplos
A.Usar STCurveN() en una CircularString
En el siguiente ejemplo se devuelve la segunda curva de una instancia de 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();
El ejemplo devuelve
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B.Usar STCurveN() en una CompoundCurve
En el siguiente ejemplo se devuelve la segunda curva de una instancia de 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();
El ejemplo devuelve
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
C.Usar STCurveN() en una CompoundCurve que tiene tres CircularStrings
El siguiente ejemplo utiliza un CompoundCurve crea instancias que combina tres instancias CircularString independientes en la misma secuencia de la curva como el ejemplo anterior:
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();
El ejemplo devuelve
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN() devuelve los mismos resultados sea cual sea el formato de Well-known text (WKT) que se utilice.
D.Comprobar la validez antes de llamar a STCurve()
En el siguiente ejemplo se muestra cómo asegurarse de que n es válido antes de llamar al método 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