STCurveN (geometry-Datentyp)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
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 )
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 ist, wird der Fehler ArgumentOutOfRangeException
ausgelöst.
Bemerkungen
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
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 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