傳回包含圓弧線段之 geography 執行個體的多邊形近似值。
語法
.CurveToLineWithTolerance( tolerance, relative )
引數
tolerance
這是 double 運算式,定義介於原始圓弧線段及其線性近似值之間的最大錯誤。relative
這是 bool 運算式,指出是否要使用偏差的相對最大值。 如果 relative 設為 false (0),則會設定線性近似值的偏差絕對最大值。 如果 relative 設為 true (1),則會以容錯參數與空間物件週框方塊之直徑的乘積來計算容錯。
傳回類型
SQL Server 傳回類型:geography
CLR 傳回類型:SqlGeography
例外狀況
如果容錯設為 <= 0,則會擲回 ArgumentOutOfRange 例外狀況。
備註
這個方法允許為結果 LineString 指定容錯量。
如果是 CircularString 或 CompoundCurve 執行個體,CurveToLineWithTolerance 方法會傳回 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 執行個體上使用此方法
下列範例示範從只包含一個 LineString 執行個體的 MultiLineString 執行個體傳回的資料:
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 執行個體上使用此方法
下列範例示範從包含多個 LineString 執行個體的 MultiLineString 執行個體傳回的資料:
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();