Sdílet prostřednictvím


STCurveN (datový typ geometrie)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí křivku zadanou z instance geometrie, která je LineString, CircularString, CompoundCurve nebo MultiLineString.

Syntax

  
.STCurveN ( curve_index )  

Arguments

curve_index
Je int výraz mezi 1 a počtem křivek v instanci geometrie .

Návratové typy

Návratový typ SQL Serveru: geometrie

Návratový typ CLR: SqlGeometry

Exceptions

Pokud curve_index< 1, vyvolá se chyba ArgumentOutOfRangeException .

Remarks

Hodnota NULL se vrátí v případě, že dojde k některé z následujících situací:

  • instance geometrie je deklarována, ale není vytvořena instance.

  • instance geometrie je prázdná.

  • curve_index překračuje počet křivek v instanci geometrie .

  • instance geometrie je point, MultiPoint, Polygon, CurvePolygon nebo MultiPolygon.

Examples

A. Použití STCurveN() v instanci CircularString

Následující příklad vrátí druhou křivku CircularString v instanci:

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

Příklad dříve v tomto tématu vrátí:

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

B. Použití STCurveN() v instanci CompoundCurve s jednou instancí CircularString

Následující příklad vrátí druhou křivku CompoundCurve v instanci:

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

Příklad dříve v tomto tématu vrátí:

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

C. Použití STCurveN() v instanci CompoundCurve se třemi instancemi CircularString

Následující příklad používá CompoundCurve instanci, která kombinuje tři samostatné CircularString instance do stejné sekvence křivky jako předchozí příklad:

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

Příklad dříve v tomto tématu vrátí:

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

Všimněte si, že výsledky jsou stejné pro předchozí tři příklady. Podle toho, který formát WKT (Dobře známý text) se používá k zadání stejné sekvence křivky, výsledky vrácené STCurveN() při použití instance jsou stejné CompoundCurve .

D. Ověření parametru před voláním stCurveN()

Následující příklad ukazuje, jak před voláním @nmetody ověřitSTCurveN(), zda je platný:

 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

Viz také

STNumCurves (geometrický datový typ)
metody OGC v instancích geometrie