STBuffer (geography データ型)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric SQL Database
geography インスタンスからの距離が指定した値以下となる、すべての地点の和集合を表す geography オブジェクトを返します。
この geography データ型メソッドは、半球より大きい FullGlobe インスタンスまたは空間インスタンスをサポートします。
構文
.STBuffer ( distance )
引数
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 メソッド