Delen via


STCurveN (geometriegegevenstype)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Retourneert de curve die is opgegeven vanuit een geometrie-exemplaar dat een LineString-, CircularString-, CompoundCurve- of MultiLineString-instantie is.

Syntax

  
.STCurveN ( curve_index )  

Arguments

curve_index
Is een int-expressie tussen 1 en het aantal curven in het geometrieexemplaren .

Retourtypen

Retourtype SQL Server: geometrie

CLR-retourtype: SqlGeometry

Exceptions

Als curve_index< 1 wordt er een ArgumentOutOfRangeException gegooid.

Remarks

NULL wordt geretourneerd wanneer een van de volgende situaties plaatsvindt:

  • het geometrie-exemplaar wordt gedeclareerd, maar niet geïnstantieerd

  • het geometrieexemplaren leeg zijn

  • curve_index overschrijdt het aantal curven in het geometrieexemplaren

  • het geometrieexemplaren is een punt, multipoint, veelhoek, curvepolygon of multipolygon

Examples

A. STCurveN() gebruiken op een CircularString-exemplaar

In het volgende voorbeeld wordt de tweede curve in een CircularString exemplaar geretourneerd:

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

Het voorbeeld eerder in dit onderwerp retourneert:

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

B. STCurveN() gebruiken op een CompoundCurve-exemplaar met één CircularString-exemplaar

In het volgende voorbeeld wordt de tweede curve in een CompoundCurve exemplaar geretourneerd:

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

Het voorbeeld eerder in dit onderwerp retourneert:

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

C. STCurveN() gebruiken op een CompoundCurve-exemplaar met drie CircularString-exemplaren

In het volgende voorbeeld wordt een CompoundCurve exemplaar gebruikt dat drie afzonderlijke CircularString exemplaren combineert in dezelfde curvereeks als in het vorige voorbeeld:

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

Het voorbeeld eerder in dit onderwerp retourneert:

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

U ziet dat de resultaten hetzelfde zijn voor de vorige drie voorbeelden. Welke WKT-indeling (bekende tekst) ook wordt gebruikt om dezelfde curvereeks in te voeren, de resultaten die worden geretourneerd STCurveN() , zijn hetzelfde wanneer een CompoundCurve exemplaar wordt gebruikt.

D. De parameter valideren voordat STCurveN() wordt aangeroepen

In het volgende voorbeeld ziet u hoe u ervoor kunt zorgen dat deze @n geldig is voordat u de STCurveN()methode aanroept:

 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

Zie ook

STNumCurves (geometriegegevenstype)
OGC-methoden voor geometrieexemplaren