STCurveN (Tipo de Dados de geometria)
Retorna a curva especificada de uma instância de geometry que é LineString, CircularString, CompoundCurve ou MultiLineString.
Aplica-se a: SQL Server (SQL Server 2012 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual). |
Sintaxe
.STCurveN ( curve_index )
Argumentos
- curve_index
É uma expressão int entre 1 e o número de curvas na instância de geometry.
Tipos de retorno
SQL Server tipo de retorno: geometry
Tipo de retorno CLR: SqlGeometry
Exceções
Se curve_index < 1, então um ArgumentOutOfRangeException é lançado.
Comentários
NULL é retornado quando ocorre qualquer um dos seguintes erros:
a instância de geometry é declarada, mas não é criada uma instância
a instância de geometry está vazia
curve_index excede o número de curvas na instância de geometry
a instância de geometry é um Point, MultiPoint, Polygon, CurvePolygon ou MultiPolygon
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 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 de CompoundCurve com uma instância de CircularString
O exemplo a seguir retorna a segunda curva em uma instância de CompoundCurve:
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 de CompoundCurve com três instâncias de CircularString
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 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)
Note que os resultados são os mesmos para os três exemplos anteriores. Qualquer que seja o formato WKT (Well-known Text) usado para inserir a mesma sequência de curva, os resultados retornados por STCurveN() serão os mesmos quando uma instância de CompoundCurve for usada.
D.Validando o parâmetro antes de chamar STCurveN()
O exemplo a seguir mostra como assegurar que @n seja válido antes de você chamar o método STCurveN():
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
Consulte também
Referência
STNumCurves (tipo de dados geometry)