Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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)