STCurveN (geometridatatyp)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar kurvan som anges från en geometriinstans som är en LineString, CircularString, CompoundCurve eller MultiLineString.

Syntax

  
.STCurveN ( curve_index )  

Arguments

curve_index
Är ett int-uttryck mellan 1 och antalet kurvor i geometriinstansen .

Returtyper

SQL Server-returtyp: geometri

CLR-returtyp: SqlGeometry

Exceptions

Om curve_index< 1 kastas en ArgumentOutOfRangeException .

Remarks

NULL returneras när något av följande inträffar:

  • geometriinstansen deklareras men instansieras inte

  • geometriinstansen är tom

  • curve_index överskrider antalet kurvor i geometriinstansen

  • geometriinstansen är en Punkt, MultiPoint, Polygon, CurvePolygon eller MultiPolygon

Examples

A. Använda STCurveN() på en CircularString-instans

I följande exempel returneras den andra kurvan i en CircularString instans:

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

Exemplet tidigare i det här avsnittet returnerar:

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

B. Använda STCurveN() på en CompoundCurve-instans med en CircularString-instans

I följande exempel returneras den andra kurvan i en CompoundCurve instans:

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

Exemplet tidigare i det här avsnittet returnerar:

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

C. Använda STCurveN() på en CompoundCurve-instans med tre CircularString-instanser

I följande exempel används en CompoundCurve instans som kombinerar tre separata CircularString instanser i samma kurvsekvens som i föregående exempel:

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

Exemplet tidigare i det här avsnittet returnerar:

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

Observera att resultatet är detsamma för de föregående tre exemplen. Oavsett vilket WKT-format (välkänd text) som används för att ange samma kurvsekvens är resultatet som returneras av STCurveN() detsamma när en CompoundCurve instans används.

D. Validera parametern innan du anropar STCurveN()

I följande exempel visas hur du ser @n till att det är giltigt innan du anropar STCurveN()metoden:

 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

Se även

STNumCurves (geometridatatyp)
OGC-metoder för geometriinstanser