次の方法で共有


BufferWithTolerance (geography データ型)

geography インスタンスから各地点までの距離が指定した許容範囲内にある、すべての地点値の和集合を表すジオメトリック オブジェクトを返します。

この geography データ型メソッドは、半球より大きい FullGlobe インスタンスまたは空間インスタンスをサポートします。

構文

.BufferWithTolerance ( distance, tolerance, relative )

引数

  • distance
    バッファー計算の対象となる geography インスタンスからの距離を指定する float 式です。

    バッファーの最大距離は、0.999 * π * minorAxis * minorAxis / majorAxis (~ 0.999 * 地球の円周の 1/2) で求められる値または全球を超えることはできません。

  • tolerance
    バッファー距離の許容範囲を指定する float 式です。

    許容範囲値とは、返された線形近似の理想的なバッファー距離の最大幅のことです。

    たとえば、ある地点の理想のバッファー距離は円ですが、多角形によって近似された形状になる必要があります。 許容範囲が小さいほど、多角形の頂点の数は多くなります。つまり、計算結果の複雑性が増しますが、元の図形との差が小さくなります。

    最小値は距離の 0.1% で、それより小さい許容範囲はこの最小値に切り上げられます。

  • relative
    tolerance 値が相対値か絶対値かを指定する bit です。 "TRUE" または 1 の場合、許容範囲は相対値です。楕円の赤道半径と角度と tolerance パラメーターの積として計算されます。 "FALSE" または 0 の場合、許容範囲は絶対値です。tolerance 値は、返された線形近似の理想的なバッファー距離の最大幅になります。

戻り値の型

SQL Server の戻り値の型: geography

CLR の戻り値の型: SqlGeography

説明

distance が非数 (NAN) の場合、または distance が正か負の無限大の場合、このメソッドは ArgumentException をスローします。 tolerance が 0、非数 (NaN)、負の数値、または正か負の無限大の場合も、このメソッドは ArgumentException をスローします。

STBuffer() は、FullGlobe インスタンスを返すことがあります。たとえば、バッファーの距離が赤道から極地までの距離を超えている場合、STBuffer() は 2 つの極地の FullGlobe インスタンスを返します。

このメソッドは、バッファーの距離が次の制限値を超えている場合、FullGlobe インスタンスで ArgumentException をスローします。

0.999 * π * minorAxis * minorAxis / majorAxis (~ 0.999 * 地球の円周の 1/2)

理論上のバッファーと計算されたバッファー間の誤差は max(tolerance, extents * 1.E-7) であり、ここで tolerance は、tolerance パラメーターの値です。 extents の詳細については、「geography データ型メソッド リファレンス」を参照してください。

このメソッドは正確ではありません。

使用例

Point インスタンスを作成し、BufferWithTolerance() を使用して、インスタンスの周りの大まかなバッファーを取得する例を次に示します。

DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();

関連項目

参照

STBuffer (geography データ型)

その他の技術情報

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