Partilhar via


STCurveN (tipo de dados de geometria)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Retorna a curva especificada de uma ocorrência de geometria que é um LineString, CircularString, CompoundCurve ou MultiLineString.

Syntax

  
.STCurveN ( curve_index )  

Arguments

curve_index
É uma expressão int entre 1 e o número de curvas na instância de geometria .

Tipos de devolução

Tipo de retorno do SQL Server: geometria

Tipo de retorno CLR: SqlGeometry

Exceptions

Se curve_index< 1, então um ArgumentOutOfRangeException é lançado.

Remarks

NULL é retornado quando qualquer uma das seguintes situações ocorre:

  • A instância de geometria é declarada, mas não instanciada

  • a instância de geometria está vazia

  • curve_index excede o número de curvas na instância de geometria

  • a ocorrência de geometria é um Point, MultiPoint, Polygon, CurvePolygon ou MultiPolygon

Examples

A. Usando STCurveN() em uma instância CircularString

O exemplo a seguir retorna a segunda curva em uma CircularString instância:

 DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';  
 SELECT @g.STCurveN(2).ToString();

O exemplo anterior neste tópico retorna:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

B. Usando STCurveN() em uma instância CompoundCurve com uma ocorrência CircularString

O exemplo a seguir retorna a segunda curva em uma CompoundCurve instância:

 DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

O exemplo anterior neste tópico retorna:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

C. Usando STCurveN() em uma instância CompoundCurve com três instâncias CircularString

O exemplo a seguir usa uma CompoundCurve instância que combina três instâncias separadas CircularString na mesma sequência de curva do exemplo anterior:

 DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();

O exemplo anterior neste tópico retorna:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

Observe que os resultados são os mesmos para os três exemplos anteriores. Seja qual for o formato WKT (Texto conhecido) usado para inserir a mesma sequência de curva, os resultados retornados por STCurveN() são os mesmos quando uma CompoundCurve instância é usada.

D. Validando o parâmetro antes de chamar STCurveN()

O exemplo a seguir mostra como certificar-se de que @n é válido antes de chamar o STCurveN()método:

 DECLARE @g geometry;  
 DECLARE @n int;  
 SET @n = 3;  
 SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END

Ver também

STNumCurves (tipo de dados de geometria)
Métodos OGC em instâncias de geometria