STCurveN (tipo de datos geometry)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric
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 valor devuelto
Tipo de valor devuelto de SQL Server: geometry
Tipo de valor devuelto de CLR: SqlGeometry
Excepciones
Si curve_index< 1, se produce una ArgumentOutOfRangeException
.
Observaciones
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 un CompoundCurve
crea instancias que combina tres instancias 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 ejemplo siguiente 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
Consulte también
STNumCurves (tipo de datos geometry)
Métodos de OGC en instancias de geometry