STCurveN (geography-Datentyp)
Gibt die Kurve zurück, die von einer Instanz von geography angegeben wurde und eine LineString, CircularString oder CompoundCurve ist.
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
Bei n < 1 wird eine 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 ist größer als die Anzahl der Kurven in der Instanz von geography. (Siehe STNumCurves (geography-Datentyp)
Die Dimension für die geography-Instanz ist 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 sichergestellt wird, dass n gültig ist, bevor Sie die STCurveN() -Methode 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