STCurveN (tipo de datos Geography)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric
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
Tipo de valor devuelto de SQL Server: geography
Tipo de valor devuelto de CLR: SqlGeography
Excepciones
Si n < 1, se produce una excepción ArgumentOutOfRangeException.
Observaciones
Cuando se dan los criterios siguientes, se devuelve NULL.
Se declara la instancia de geography, pero no se crea.
La instancia de geography está vacía.
n supera el número de curvas de la instancia de geography (vea STNumCurves (geography Data Type)
La dimensión para la instancia de geography no es equivalente (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
En el siguiente ejemplo se usa una instancia de CompoundCurve que combina tres instancias independientes de CircularString en la misma secuencia de la curva, como en 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 ejemplo siguiente 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