STBuffer (geography データ型)

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

geography インスタンスからの距離が指定した値以下となる、すべての地点の和集合を表す geography オブジェクトを返します。

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

構文

  
.STBuffer ( distance )  

Note

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

引数

distance
float 型 (.NET Framework では double 型) の値であり、バッファー計算の対象とする geography インスタンスからの距離を指定します。

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

戻り値の型

SQL Server 戻り値の型: geography

CLR の戻り値の型: SqlGeography

解説

STBuffer() は、tolerance = abs(distance) * .001 および relative = false を指定して BufferWithTolerance を呼び出すのと同じ方法でバッファーを計算します。

バッファーに負の値を指定すると、geography インスタンスの境界から、指定された距離の範囲内にある地点がすべて削除されます。

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

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

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

最大距離の制限により、バッファーを構築する際の柔軟性が最大限に高まります。

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

次の例では、LineString``geography インスタンスを作成します。 次に、STBuffer() を使用して、インスタンスから 1 m 以内にある領域を返します。

DECLARE @g geography;  
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SELECT @g.STBuffer(1).ToString();  

参照

BufferWithTolerance (geography データ型)
Geography インスタンスの OGC メソッド