傳回包含圓弧線段之 geometry 執行個體的多邊形近似值。
語法
.STCurveToLine ( )
傳回類型
SQL Server 傳回類型:geometry
CLR 傳回類型:SqlGeometry
備註
如果是空 geometry 執行個體變數,則傳回空的 GeometryCollection 執行個體,如果是未初始化的 geometry 變數,則傳回 NULL。
此方法所傳回的多邊形近似值取決於您用來呼叫方法的 geometry 執行個體:
如果是 CircularString 或 CompoundCurve 執行個體,則傳回 LineString 執行個體。
如果是 CurvePolygon 執行個體,則傳回 Polygon 執行個體。
如果 geometry 執行個體不是 CircularString、CompoundCurve 或 CurvePolygon 執行個體,則傳回該執行個體的副本。 例如,如果 geometry 執行個體是 Point 執行個體,STCurveToLine 方法會傳回 Point 執行個體。
與 SQL/MM 規格不同的是,STCurveToLine 方法並不使用 z-coordinate 值來計算多邊形近似值。 此方法會略過任何出現在呼叫 geometry 執行個體中的 z-coordinate 值。
範例
A.使用未初始化的幾何變數和空白執行個體
在下列範例中,第一個 SELECT 陳述式使用未初始化的 geometry 執行個體來呼叫 STCurveToLine 方法,第二個 SELECT 陳述式使用空白 geometry 執行個體。 因此,此方法會對第一個陳述式傳回 NULL,對第二個陳述式則傳回 GeometryCollection 集合。
DECLARE @g geometry;
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
SET @g = geometry::Parse('LINESTRING EMPTY');
SELECT @g.STGeometryType();
B.使用 LineString 執行個體
在下列範例中,SELECT 陳述式使用 LineString 執行個體來呼叫 STCurveToLine 方法。 因此,此方法會傳回 LineString 執行個體。
DECLARE @g geometry;
SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');
SET @g = @g.STCurveToLine();
SELECT @g.STGeometryType();
C.使用 CircularString 執行個體
在下列範例中,第一個 SELECT 陳述式使用 CircularString 執行個體來呼叫 STCurveToLine 方法。 因此,此方法會傳回 LineString 執行個體。 這個 SELECT 陳述式也會比較兩個執行個體的長度,它們大約相同。 最後,第二個 SELECT 陳述式會傳回每個執行個體的點數。 它對 CircularString 執行個體只傳回 5 點,但對 LineString 執行個體傳回 65 點。
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.使用 CurvePolygon 執行個體
在下列範例中,SELECT 陳述式使用 CurvePolygon 執行個體來呼叫 STCurveToLine 方法。 因此,此方法會傳回 Polygon 執行個體。
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];
請參閱
參考
STGeometryType (geometry 資料類型)