Compartir a través de


STCurveN (tipo de datos Geography)

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

Sintaxis

.STCurveN( n )

Argumentos

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

Tipos de valor devuelto

SQL Server tipo de valor devuelto: geography

Tipo de valor devuelto de CLR: SqlGeography

Excepciones

Si n < 1, se produce una excepción ArgumentOutOfRangeException.

Comentarios

Cuando se dan los criterios siguientes, se devuelve NULL.

Ejemplos

A.Usar STCurveN() en una CircularString

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

El ejemplo devuelve

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

B.Usar STCurveN() en una CompoundCurve

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

El ejemplo devuelve

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

C.Usar STCurveN() en una CompoundCurve que tiene tres CircularStrings

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

El ejemplo devuelve

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

STCurveN() devuelve los mismos resultados sea cual sea el formato de Well-known text (WKT) que se utilice.

D.Comprobar la validez antes de llamar a STCurve()

En el siguiente ejemplo se muestra cómo asegurarse de que n es válido antes de llamar al método STCurveN()

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

Vea también

Otros recursos

Métodos de OGC en instancias de Geography