STCurveN (tipo di dati geometry)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
Restituisce la curva specificata da un'istanza geometry e corrispondente a 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
Tipo SQL Server 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 è di tipo Point, MultiPoint, Polygon, CurvePolygon o MultiPolygon
Esempi
R. 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()
L'esempio seguente illustra 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
Vedi anche
STNumCurves (tipo di dati geometry)
Metodi OGC sulle istanze di geometria