STCurveN (tipo de datos geometry)

Devuelve la curva especificada a partir de una instancia de geometry que es LineString, CircularString, CompoundCurve o MultiLineString.

Sintaxis

.STCurveN ( curve_index )

Argumentos

  • curve_index
    Es una expresión int entre 1 y el número de curvas de la instancia de geometry.

Tipos de valores devueltos

SQL Server tipo devuelto: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Excepciones

Si curve_index <1, se produce una ArgumentOutOfRangeException.

Comentarios

Se devuelve NULL cuando se da alguna de las condiciones siguientes:

  • La instancia de geometry se declara, pero no se crea

  • La instancia de geometry está vacía

  • curve_index supera el número de curvas de la instancia de geometry

  • La instancia de geometry es un valor Point, MultiPoint, Polygon, CurvePolygon o MultiPolygon

Ejemplos

A.Usar STCurveN() en una instancia de CircularString

En el siguiente ejemplo se devuelve la segunda curva de una instancia 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();

El ejemplo anterior de este tema devuelve:

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

B.Usar STCurveN() en una instancia de CompoundCurve con una instancia de CircularString

En el siguiente ejemplo se devuelve la segunda curva de una instancia 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();

El ejemplo anterior de este tema devuelve:

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

C.Usar STCurveN() en una instancia de CompoundCurve con tres instancias de CircularString

El siguiente ejemplo utiliza una instancia de CompoundCurve que combina tres instancias de CircularString independientes en la misma secuencia de la curva, como el ejemplo 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();

El ejemplo anterior de este tema devuelve:

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

Observe que los resultados son los mismos para los tres ejemplos anteriores. Cualquier formato WKT (texto bien conocido) se utiliza para especificar la misma secuencia de la curva, los resultados que devuelve STCurveN() son iguales cuando se usa una instancia de CompoundCurve.

D.Validar el parámetro antes de llamar a STCurveN()

En el siguiente ejemplo se muestra cómo asegurarse de que @n es válido antes de llamar al 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

Vea también

Referencia

STNumCurves (tipo de datos geometry)

Otros recursos

Métodos de OGC en instancias de geometry