STCurveToLine (geometry-Datentyp)
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
Hinweise
Gibt eine leere GeometryCollection-Instanz für leere geometry-Instanzvariablen zurück, und gibt NULL für nicht intialisierte 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, falls 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-coordinate-Werte zur Berechnung der polygonalen Näherung verwendet. Alle z-coordinate-Werte in der aufrufenden Instanz von geometry werden von der Methode ignoriert.
Beispiele
A.Verwenden einer nicht initialisierten geometry-Variablen und einer leeren Instanz
Im folgenden Beispiel wird die STCurveToLine-Methode von der ersten SELECT-Anweisung mit einer nicht initialisierten Instanz von geometry aufgerufen, und in der zweiten SELECT -Anweisung wird eine leere Instanz von geometry verwendet. Daher wird von der Methode NULL für die erste Anweisung und eine GeometryCollection-Auflistung für die zweite Anweisung zurückgegeben.
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 im folgenden Beispiel ruft die STCurveToLine-Methode mit einer Instanz von LineString auf. Daher wird von der Methode eine Instanz von LineString 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 im folgenden Beispiel ruft die STCurveToLine-Methode mit einer Instanz von CircularString auf. Daher wird von der Methode eine Instanz von LineString 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 Instanz von CircularString, jedoch 65 Punkte für die Instanz von LineString 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 im folgenden Beispiel ruft die STCurveToLine-Methode mit einer Instanz von CurvePolygon auf. Daher wird von der Methode eine Instanz von Polygon 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
Verweis
STNumPoints (geometry-Datentyp)
STGeometryType (geometry-Datentyp)