Freigeben über


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

STLength (geometry-Datentyp)

STNumPoints (geometry-Datentyp)

STGeometryType (geometry-Datentyp)

Konzepte

Übersicht über räumliche Datentypen