CurveToLineWithTolerance (geometry 資料類型)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Microsoft Fabric 中的 SQL 資料庫

傳回包含圓弧線段之 geometry 執行個體的多邊形近似值。

Syntax

  
.CurveToLineWithTolerance ( tolerance, relative )  

Arguments

tolerance
這是 double 運算式,用來定義原始圓弧線段與其線性近似值之間的最大誤差。

relative
這是一個 bool 運算式,用來指出是否要使用偏差的相對最大值。 如果 relative 設為 false (0),則會設定線性近似值的偏差絕對最大值。 如果 relative 設為 true (1),則會以容錯參數與空間物件週框方塊之直徑的乘積來計算容錯。

傳回型別

SQL Server 傳回類型:geometry

CLR 傳回類型:SqlGeometry

Exceptions

若容錯設定為 <=0,將會擲回 ArgumentOutOfRange 例外狀況。

Remarks

此方法可以指定結果 LineString 的誤差容許範圍。

下表顯示 CurveToLineWithTolerance() 為各種不同類型所傳回的執行個體類型。

叫用執行個體類型 傳回的空間類型
空白 geometry 執行個體 空的 GeometryCollection 執行個體
Point 和 MultiPoint 點 實例
MultiPoint Point 或 MultiPoint 執行個體
CircularStringCompoundCurve 或 LineString LineString 實例
MultiLineString LineString 或 MultiLineString 執行個體
CurvePolygon 和 Polygon 多邊形 實例
MultiPolygon Polygon 或 MultiPolygon 執行個體
具有不含圓弧線段之單一執行個體的 GeometryCollection GeometryCollection 中包含的執行個體會決定所傳回的執行個體類型。
具有單一一維圓弧線段執行個體 (CircularString、CompoundCurve) 的 GeometryCollection LineString 實例
具有單一二維圓弧線段執行個體 (CurvePolygon) 的 GeometryCollection 多邊形 實例
具有多個一維執行個體的 GeometryCollection MultiLineString 實例
具有多個二維執行個體的 GeometryCollection 多邊形 實例
具有多個不同維度之執行個體的 GeometryCollection GeometryCollection 實例

Examples

A. 在 CircularString 執行個體上使用不同的容錯值

下列範例顯示設定容錯 LineString 如何影響從 實例傳回的 CircularString 實例:

 DECLARE @g geometry; 
 SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)'); 
 SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();

B. 在包含一個 LineString 的 MultiLineString 執行個體上使用此方法

下列範例示範從只包含一個 MultiLineString 執行個體的 LineString 執行個體傳回的資料:

 DECLARE @g geometry; 
 SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9))'); 
 SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

C. 在包含多個 LineString 的 MultiLineString 執行個體上使用此方法

下列範例示範從包含多個 MultiLineString 執行個體的 LineString 執行個體傳回的資料:

 DECLARE @g geometry; 
 SET @g = geometry::Parse('MULTILINESTRING((1 3, 4 8, 6 9),(4 4, 9 18))'); 
 SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

D. 為叫用 CurvePolygon 執行個體,將 relative 設為 true

下列範例使用 CurvePolygon 執行個體,在 CurveToLineWithTolerance() 設為 true 時呼叫 :

 DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 SELECT @g.CurveToLineWithTolerance(.5,1).ToString();

E. 在 GeometryCollection 執行個體上使用此方法

下列範例會在包含二維 CurveToLineWithTolerance() 執行個體和一維 GeometryCollection 執行個體的 CurvePolygon 上呼叫 CircularString。 CurveToLineWithTolerance() 會將這兩種圓弧線段類型轉換成線段類型,並以 GeometryCollection 類型傳回它們。

 DECLARE @g geometry; 
 SET @g = geometry::Parse('GEOMETRYCOLLECTION(CURVEPOLYGON( COMPOUNDCURVE(CIRCULARSTRING(0 2, 2 0, 4 2), (4 2, 0 2))), CIRCULARSTRING(4 4, 8 6, 9 5))'); 
 SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.1, 0).ToString();