STCurveN (geography-Datentyp)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
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 )
Argumente
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
Ausnahmen
Wenn n < 1 ist, wird ArgumentOutOfRangeException ausgelöst.
Hinweise
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)).
Beispiele
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