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.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Gibt die von einer Instanz von geometry angegebene Kurve zurück, bei der es sich um eine LineString, CircularString, CompoundCurveoder MultiLineStringhandelt.
Syntax
.STCurveN ( curve_index )
Arguments
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
Exceptions
Wenn curve_index< 1 ist, wird der Fehler ArgumentOutOfRangeException ausgelöst.
Remarks
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, CurvePolygonoder MultiPolygon
Examples
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 die Gültigkeit von @n vor dem Aufruf der STCurveN()-Methode 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
STNumCurves (geometry-Datentyp)
OGC-Methoden für geometry-Instanzen