Teilen über


STCurveToLine (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-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)