共用方式為


STCurveToLine (geometry 資料類型)

傳回包含圓弧線段之 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];

請參閱

參考

STLength (geometry 資料類型)

STNumPoints (geometry 資料類型)

STGeometryType (geometry 資料類型)

概念

空間資料類型概觀