Anmerkung
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 eine polygonale Näherung einer Instanz von geometry mit Kreisbogensegmenten zurück.
Syntax
.STCurveToLine ( )
Rückgabetypen
SQL Server-Rückgabetyp: geometry
CLR-Rückgabetyp: SqlGeometry
Remarks
Gibt eine leere GeometryCollection-Instanz für leere Geometrieinstanzvariablen zurück und gibt NULL für nicht initialisierte Geometrievariablen zurück.
Die polygonale Näherung, die die Methode zurückgibt, hängt von der geometry-Instanz ab, mit der Sie die Methode aufrufen:
Gibt eine LineString -Instanz für eine CircularString - oder CompoundCurve -Instanz zurück.
Gibt eine Polygon -Instanz für eine CurvePolygon -Instanz zurück.
Gibt eine Kopie der geometry-Instanz zurück, wenn diese keine CircularString-, CompoundCurve- oder CurvePolygon-Instanz ist. Beispielsweise gibt die
STCurveToLine-Methode eine Point-Instanz für eine geometry-Instanz zurück, die eine Point-Instanz darstellt.
Im Gegensatz zur SQL/MM-Spezifikation werden bei der STCurveToLine-Methode keine Z-Koordinatenwerte zur Berechnung der polygonalen Näherung verwendet. Die Methode berücksichtigt keine in der aufrufenden geometry-Instanz enthaltenen Werte der Z-Koordinate.
Examples
A. Verwenden einer nicht initialisierten geometry-Variablen und einer leeren Instanz
In diesem Beispiel verwendet die erste SELECT-Anweisung eine nicht initialisierte geometry-Instanz, um die STCurveToLine-Methode aufzurufen, und die zweite SELECT-Anweisung verwendet eine leere geometry-Instanz. Daher gibt die Methode NULL an die erste Anweisung zurück und eine GeometryCollection-Collection an die zweite Anweisung.
DECLARE @g geometry;
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
SET @g = geometry::Parse('LINESTRING EMPTY');
SELECT @g.STGeometryType();
B. Verwenden einer LineString-Instanz
Die SELECT-Anweisung in den folgenden Beispielen verwendet eine LineString-Instanz, um die STCurveToLine-Methode aufzurufen. Daher wird von der Methode eine LineString-Instanz zurückgegeben.
DECLARE @g geometry;
SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
C. Verwenden einer CircularString-Instanz
Die erste SELECT-Anweisung in den folgenden Beispielen verwendet eine CircularString-Instanz, um die STCurveToLine-Methode aufzurufen. Daher wird von der Methode eine LineString-Instanz zurückgegeben. Mit dieser SELECT-Anweisung wird auch die Länge der beiden Instanzen verglichen, die in etwa gleich ist. Abschließend wird von der zweiten SELECT-Anweisung die Anzahl der Punkte für jede Instanz zurückgegeben. Sie gibt nur 5 Punkt für die CircularString-Instanz zurück, aber 65 Punkt für die LineString-Instanz .
DECLARE @g1 geometry, @g2 geometry;
SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');
SET @g2 = @g1.STCurveToLine();
SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];
SELECT @g1.STNumPoints(), @g2.STNumPoints();
D. Verwenden einer CurvePolygon-Instanz
Die SELECT-Anweisung in den folgenden Beispielen verwendet eine CurvePolygon-Instanz, um die STCurveToLine-Methode aufzurufen. Daher wird von der Methode eine Polygon-Instanz zurückgegeben.
DECLARE @g1 geometry, @g2 geometry;
SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');
SET @g2 = @g1.STCurveToLine();
SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];
Siehe auch
Übersicht über räumliche Datentypen
STLength (geometry-Datentyp)
STNumPoints (geometry-Datentyp)
STGeometryType (geometry-Datentyp)