Condividi tramite


STCurveN (tipo di dati geometry)

Restituisce la curva specificata da un'istanza geometry che è LineString, CircularString, CompoundCurve o MultiLineString.

Sintassi

.STCurveN ( curve_index )

Argomenti

  • curve_index
    Espressione int compresa tra 1 e il numero di curve nell'istanza geometry.

Tipi restituiti

SQL Server tipo restituito: geometry

Tipo CLR restituito: SqlGeometry

Eccezioni

Se curve_index < 1 viene generata un'eccezione ArgumentOutOfRangeException.

Osservazioni

NULL viene restituito in uno dei casi seguenti:

  • l'istanza geometry viene dichiarata, ma non ne viene creata un'istanza

  • l'istanza geometry è vuota

  • curve_index supera il numero di curve nell'istanza geometry

  • l'istanza geometry è Point, MultiPoint, Polygon, CurvePolygon o MultiPolygon

Esempi

A.Utilizzo di STCurves() in un'istanza CircularString

Nell'esempio seguente viene restituita la seconda curva in un'istanza 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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

B.Utilizzo di STCurveN() in un'istanza CompoundCurve con un'istanza CircularString

Nell'esempio seguente viene restituita la seconda curva in un'istanza 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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

C.Utilizzo di STCurveN() in un'istanza CompoundCurve con tre istanze CircularString

Nell'esempio seguente viene utilizzata un'istanza CompoundCurve che combina tre istanze CircularString separate nella stessa sequenza di curve dell'esempio precedente:

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();

Nell'esempio riportato in precedenza in questo argomento viene restituito:

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

Si noti che i risultati sono gli stessi dei tre esempi precedenti. Indipendentemente dal formato WKT (well-known text) utilizzato per immettere la stessa sequenza di curve, i risultati restituiti da STCurveN() sono gli stessi quando viene utilizzata un'istanza CompoundCurve.

D.Convalida del parametro prima della chiamata a STCurveN()

Nell'esempio seguente viene illustrato come assicurarsi che @n sia valido prima di chiamare il metodo 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

Vedere anche

Riferimento

STNumCurves (tipo di dati geometry)

Altre risorse

Metodi OGC sulle istanze di geometria