Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Retorna a curva especificada de uma ocorrência geográfica que é um LineString, CircularString ou CompoundCurve.
Syntax
.STCurveN( n )
Arguments
n
É uma expressão int entre 1 e o número de curvas na instância de geografia .
Tipos de devolução
Tipo de retorno do SQL Server: geografia
Tipo de retorno CLR: SqlGeography
Exceptions
Se n < 1, então um ArgumentOutOfRangeException é lançado.
Remarks
NULL é retornado quando os seguintes critérios ocorrem.
A instância de geografia é declarada, mas não é instanciada
A instância de geografia está vazia
n excede o número de curvas na instância de geografia (Consulte STNumCurves (geography Data Type)
A dimensão para a instância de geografia não é igual (Consulte STDimension (geography Data Type)
Examples
A. Usando STCurveN() em um CircularString
O exemplo a seguir retorna a segunda curva em uma ocorrê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();
O exemplo retorna.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B. Usando STCurveN() em uma CompoundCurve
O exemplo a seguir retorna a segunda curva em uma instância 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();
O exemplo retorna.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
C. Usando STCurveN() em uma CompoundCurve contendo três CircularStrings
O exemplo a seguir usa uma ocorrência de CompoundCurve que combina três instâncias CircularString separadas na mesma sequência de curva do 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();
O exemplo retorna.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN() retorna os mesmos resultados, independentemente Well-Known formato de texto (WKT) usado.
D. Testando a validade antes de chamar STCurve()
O exemplo a seguir mostra como certificar-se de que n é válido antes de chamar o STCurveN() método:
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