Compartilhar via


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:

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

Consulte também

Outros recursos

Métodos do OGC em instâncias de geography