BufferWithTolerance (geography データ型)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

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

構文

  
.BufferWithTolerance ( distance, tolerance, relative )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

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

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

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

理想的なバッファー距離と返される線形近似との差異の最大値が tolerance の値となります。

たとえば、ある地点の理想的なバッファー距離は円ですが、この距離は多角形で近似する必要があります。 許容範囲が小さくなるほど、多角形に含まれる点が多くなります。 この結果により結果がより複雑になりますが、誤差が最小になります。

最小値は距離の 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 パラメーターの値になります。 エクステントの詳細は、「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 インスタンスの拡張メソッド