STCurveN (tipo de dados geography)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Banco de Dados SQL no Microsoft Fabric
Retorna a curva especificada de um instância de geography que é uma LineString, uma CircularString ou uma 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
Tipo de retorno do SQL Server: geography
Tipo de retorno do CLR: SqlGeography
Exceções
Se n < 1, uma ArgumentOutOfRangeException será gerada.
Comentários
NULL será retornado quando o seguinte critério ocorrer.
A instância de geography for declarada, mas não for criada uma instância dela
A instância de geography estiver vazia
n exceder o número de curvas na instância de geography (confira STNumCurves (tipo de dados geography)
A dimensão da instância de geography não for igual a (confira STDimension (tipo de dados geography)
Exemplos
a. Usando STCurveN() em uma 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 a seguir usa uma instância de CompoundCurve que combina três instâncias de CircularString separadas na mesma sequência de curva, como no 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 seguinte exemplo mostra como ter certeza de 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