次の方法で共有


STBuffer (geography データ型)

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

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

構文

.STBuffer ( distance )

引数

  • distance
    geography インスタンスからのバッファーの幅の距離を指定するための float (.NET Framework では double) 型の値です。

    バッファーの最大距離は、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() は FullGlobe を返します。 バッファーは全球を超えることはできません。

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

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

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

理論上のバッファーと計算されたバッファー間の誤差は max(tolerance, extents * 1.E-7) であり、ここで tolerance = distance * .001 です。 extents の詳細については、「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 メソッド