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 Kurve zurück, die von einer Instanz von geography angegeben wurde und eine LineString, CircularStringoder CompoundCurveist.
Syntax
.STCurveN( n )
Arguments
n
Ein int -Ausdruck zwischen 1 und der Anzahl der Kurven in der geography -Instanz.
Rückgabetypen
SQL Server-Rückgabetyp: geography
CLR-Rückgabetyp: SqlGeography
Exceptions
Wenn n < 1 ist, wird ArgumentOutOfRangeException ausgelöst.
Remarks
NULL wird zurückgegeben, wenn die folgenden Kriterien erfüllt sind.
Die geography -Instanz wird deklariert, aber nicht instanziiert
Die geography -Instanz ist leer.
n überschreitet die Anzahl der Kurven in der geography-Instanz (siehe STNumCurves (geography-Datentyp))
Die Dimension für die geography-Instanz entspricht nicht gleich (siehe STDimension (geography-Datentyp)).
Examples
A. Verwenden von STCurveN() für einen CircularString
Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CircularString zurückgegeben:
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();
Die Rückgabe des Beispiels lautet wie folgt.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
B. Verwenden von STCurveN() für eine CompoundCurve
Im folgenden Beispiel wird die zweite Kurve in einer Instanz von CompoundCurve zurückgegeben:
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();
Die Rückgabe des Beispiels lautet wie folgt.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
C. Verwenden von STCurveN() für eine CompoundCurve mit drei CircularStrings
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 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();
Die Rückgabe des Beispiels lautet wie folgt.
CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)
STCurveN() gibt unabhängig vom verwendeten WKT-Format (Well-Known Text) die gleichen Ergebnisse zurück.
D. Testen auf Gültigkeit vor dem Aufrufen von STCurve()
Im folgenden Beispiel wird gezeigt, wie Sie sicherstellen, dass n gültig ist, bevor Sie die Methode STCurve() aufrufen:
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