Freigeben über


STCurveN (geometry-Datentyp)

Gibt die von einer Instanz von geometry angegebene Kurve zurück, bei der es sich um eine LineString, CircularString, CompoundCurve oder MultiLineString handelt.

Syntax

.STCurveN ( curve_index )

Argumente

  • curve_index
    Ein int-Ausdruck zwischen 1 und der Anzahl der Kurven in der geometry-Instanz.

Rückgabetypen

SQL Server Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Ausnahmen

Wenn curve_index < 1, wird eine ArgumentOutOfRangeException ausgelöst.

Hinweise

NULL wird in folgenden Fällen zurückgegeben:

  • Die geometry-Instanz ist deklariert, aber nicht instanziiert.

  • Die geometry-Instanz ist leer.

  • curve_index überschreitet die Anzahl der Kurven in der geometry-Instanz.

  • Bei der geometry-Instanz handelt es sich um einen Point, MultiPoint, ein Polygon, CurvePolygon oder MultiPolygon

Beispiele

A.Verwenden von STCurveN() in einer CircularString-Instanz

Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CircularString zurückgegeben:

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

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

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

B.Verwenden von STCurveN() in einer CompoundCurve-Instanz mit einer CircularString-Instanz

Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CompoundCurve zurückgegeben:

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

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

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

C.Verwenden von STCurveN() in einer CompoundCurve-Instanz mit drei CircularString-Instanzen

Im folgenden Beispiel wird eine Instanz von CompoundCurve, die drei separate Instanzen von CircularString kombiniert, in der gleichen Kurvensequenz wie im vorherigen Beispiel zurückgegeben:

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

Im weiter oben in diesem Thema angegebenen Beispiel wird Folgendes zurückgegeben:

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

Die Ergebnisse sind für die vorherigen drei Beispiele gleich. Unabhängig vom WKT (Well-known Text)-Format, das bei der Eingabe der gleichen Kurvensequenz verwendet wird, die von STCurveN() zurückgegebenen Ergebnisse sind bei Verwendung einer CompoundCurve-Instanz gleich.

D.Überprüfen des Parameters vor Aufruf von STCurveN()

Im folgenden Beispiel wird gezeigt, wie vor dem Aufruf der STCurveN()-Methode die Gültigkeit von @n sichergestellt wird:

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

Siehe auch

Verweis

STNumCurves (geometry-Datentyp)

Andere Ressourcen

OGC-Methoden für geomety-Instanzen