共用方式為


CurveToLineWithTolerance (geography 資料類型)

適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體

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

Syntax

  
.CurveToLineWithTolerance( tolerance, relative )  

注意

若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

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

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

傳回型別

SQL Server 傳回類型:geography

CLR 傳回類型:SqlGeography

例外狀況

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

備註

這個方法允許為結果 LineString 指定容錯量。

CurveToLineWithTolerance 方法將針對 CircularStringCompoundCurve 執行個體傳回 LineString 執行個體,而針對 CurvePolygon 執行個體傳回 Polygon 執行個體。

範例

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

下列範例示範設定容錯如何影響從 CircularString 執行個體傳回的 LineString 執行個體:

DECLARE @g geography;  
SET @g = geography::Parse('CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');  
SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();

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

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

DECLARE @g geography;  
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649))');  
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

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

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

DECLARE @g geography;  
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649),(-123.358 47.653, -123.348 47.649))');  
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

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

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

DECLARE @g geography = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658), (-122.348 47.658, -122.358 47.658, -122.358 47.653)))';  
SELECT @g.CurveToLineWithTolerance(.5,1).ToString();

另請參閱

地理例項上擴充的方法