Compartir por


STCurveN (tipo de datos Geography)

Se aplica a: SQL ServerAzure SQL Database Azure SQL Instancia administrada

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

Sintaxis

  
.STCurveN( n )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentació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

Tipo de valor devuelto de SQL Server: geography

Tipo de valor devuelto de CLR: SqlGeography

Excepciones

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

Observaciones

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

En el siguiente ejemplo se usa una instancia de CompoundCurve que combina tres instancias independientes de CircularString en la misma secuencia de la curva, como en 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 ejemplo siguiente 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

Consulte también

Métodos de OGC en instancias de Geography