Udostępnij za pomocą


STCurveN (geometria typu danych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca krzywą określoną z wystąpienia geometrii, które jest LineString, CircularString, CompoundCurve lub MultiLineString.

Syntax

  
.STCurveN ( curve_index )  

Arguments

curve_index
Jest wyrażeniem int z zakresu od 1 do liczby krzywych w wystąpieniu geometrii .

Typy zwracane

Zwracany typ programu SQL Server: geometria

Typ zwracania CLR: SqlGeometry

Exceptions

Jeśli curve_index< 1, zostanie zgłoszony.ArgumentOutOfRangeException

Remarks

Wartość NULL jest zwracana, gdy wystąpi dowolny z następujących:

  • wystąpienie geometrii jest zadeklarowane, ale nie zostało utworzone wystąpienie

  • wystąpienie geometrii jest puste

  • curve_index przekracza liczbę krzywych w wystąpieniu geometrii

  • wystąpienie geometrii to Punkt, MultiPoint, Wielokąt, KrzywaPolygon lub MultiPolygon

Examples

A. Używanie metody STCurveN() w wystąpieniu CircularString

Poniższy przykład zwraca drugą krzywą w wystąpieniu 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();

Przykład we wcześniejszej części tego tematu zwraca następujące elementy:

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

B. Używanie metody STCurveN() w wystąpieniu CompoundCurve z jednym wystąpieniem cyklicznym

Poniższy przykład zwraca drugą krzywą w wystąpieniu 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();

Przykład we wcześniejszej części tego tematu zwraca następujące elementy:

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

C. Używanie metody STCurveN() w wystąpieniu CompoundCurve z trzema wystąpieniami cyklicznymi

W poniższym przykładzie użyto CompoundCurve wystąpienia, które łączy trzy oddzielne CircularString wystąpienia w tej samej sekwencji krzywej co w poprzednim przykładzie:

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

Przykład we wcześniejszej części tego tematu zwraca następujące elementy:

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

Zwróć uwagę, że wyniki są takie same w przypadku poprzednich trzech przykładów. Niezależnie od formatu WKT (dobrze znanego tekstu) jest używany do wprowadzania tej samej sekwencji krzywej, wyniki zwracane przez STCurveN() program są takie same, gdy CompoundCurve jest używane wystąpienie.

D. Sprawdzanie poprawności parametru przed wywołaniem metody STCurveN()

W poniższym przykładzie pokazano, jak upewnić się, że @n przed wywołaniem metody jest prawidłowa 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

Zobacz też

STNumCurves (typ danych geometrycznych)
metody OGC w wystąpieniach geometrycznych