STCurveToLine (geometry-Datentyp)
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
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
Bemerkungen
Gibt eine leere GeometryCollection-Instanz für leere geometry-Instanzvariablen und NULL für nicht initialisierte geometry-Variablen 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.
Beispiele
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. Es werden nur 5 Punkte für die CircularString-Instanz, aber 65 Punkte für die LineString-Instanz zurückgegeben.
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];
Weitere Informationen
Übersicht über räumliche Datentypen
STLength (geometry-Datentyp)
STNumPoints (geometry-Datentyp)
STGeometryType (geometry-Datentyp)