Partilhar via


STCurveN (tipo de dados geográficos)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase 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.

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

Ver também

Métodos OGC em instâncias geográficas