Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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)