次の方法で共有


CurveToLineWithTolerance (geography データ型)

円弧を含む 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();

関連項目

その他の技術情報

geography インスタンスの拡張メソッド