円弧を含む geography インスタンスの多角形近似を返します。
構文
.CurveToLineWithTolerance( tolerance, relative )
引数
tolerance
元の円弧とその線形近似の間の最大誤差を定義する double 式です。relative
偏差に相対最大値を使用するかどうかを示す bool 式です。 relative を false (0) に設定すると、線形近似で許容される偏差に絶対最大値が設定されます。 relative を true (1) に設定すると、tolerance は tolerance パラメーターと空間オブジェクトに外接する四角形の直径の積として計算されます。
戻り値の型
SQL Server の戻り値の型: geography
CLR の戻り値の型: SqlGeography
例外
tolerance <= 0 に設定すると、ArgumentOutOfRange 例外がスローされます。
説明
このメソッドを使用すると、結果として得られる LineString の許容誤差量を指定できます。
CurveToLineWithTolerance メソッドは、CircularString インスタンスまたは CompoundCurve インスタンスの LineString インスタンス、および CurvePolygon インスタンスの Polygon インスタンスを返します。
使用例
A. CircularString インスタンスに対して異なる tolerance 値を使用する
次の例では、tolerance の設定が 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. 1 つの LineString を含む MultiLineString インスタンスに対してこのメソッドを使用する
次の例では、LineString インスタンスを 1 つだけ含む 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();