Freigeben über


STCurveToLine (geometry-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Gibt eine polygonale Näherung einer Instanz von geometry mit Kreisbogensegmenten zurück.

Syntax

  
.STCurveToLine ( )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

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)