STCurveN (geografidatatyp)

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

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

Syntax

  
.STCurveN( n )  

Arguments

n
Är ett int-uttryck mellan 1 och antalet kurvor i geografiinstansen.

Returtyper

SQL Server-returtyp: geografi

CLR-returtyp: SqlGeography

Exceptions

Om n < 1 genereras en ArgumentOutOfRangeException .

Remarks

NULL returneras när följande villkor inträffar.

Examples

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

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

 DECLARE @g geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
 SELECT @g.STCurveN(2).ToString();

Exemplet returnerar.

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

B. Använda STCurveN() på en CompoundCurve

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

 DECLARE @g geography = 'COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 SELECT @g.STCurveN(2).ToString();

Exemplet returnerar.

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

C. Använda STCurveN() på en CompoundCurve som innehåller tre CircularStrings

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

 DECLARE @g geography = 'COMPOUNDCURVE (CIRCULARSTRING (-122.358 47.653, -122.348 47.649, -122.348 47.658), CIRCULARSTRING(-122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 SELECT @g.STCurveN(2).ToString();

Exemplet returnerar.

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

STCurveN() returnerar samma resultat oavsett Well-Known textformat (WKT) som används.

D. Testa för giltighet innan du anropar STCurve()

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

 DECLARE @g geography;  
 DECLARE @n int;  
 SET @n = 2;  
 SET @g = geography::Parse('LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END

Se även

OGC-metoder för geografiinstanser