STCurveN (tipo de dados geography)
Retorna a curva especificada de uma instância de geography que seja LineString, CircularString ou CompoundCurve.
Sintaxe
.STCurveN( n )
Argumentos
- n
É uma expressão int entre 1 e o número de curvas na instância de geography.
Tipos de retorno
SQL Server tipo de retorno: geography
Tipo de retorno CLR: SqlGeography
Exceções
Se n < 1 então um ArgumentOutOfRangeException será lançado.
Comentários
NULL é retornado quando ocorre o seguinte critério:
A instância de geography é declarada, mas não é criada uma instância
A instância de geography está vazia
n excede o número de curvas na instância de geography (consulte STNumCurves (tipo de dados geography)
A dimensão para a instância de geography não iguala (Consulte STDimension (tipo de dados geography)
Exemplos
A.Usando STCurveN() em uma instância de CircularString
O exemplo a seguir retorna a segunda curva em uma instância 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();
Os resultados do exemplo.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B.Usando STCurveN() em uma instância de CompoundCurve
O exemplo a seguir retorna a segunda curva em uma instância 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();
Os resultados do exemplo.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
C.Usando STCurveN() em um CompoundCurve que contém três CircularStrings
O exemplo seguinte usa uma instância de CompoundCurve que combina três instâncias de CircularString separadas na mesma sequência de curva como o exemplo 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();
Os resultados do exemplo.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN() retorna os mesmos resultados independentemente do formato de texto Conhecido (WKT) usado.
D.Testando a validade antes de chamar STCurve()
O exemplo a seguir mostra como ter certeza que n é válido antes de chamar o 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