次の方法で共有


Reduce (geography データ型)

指定した geography インスタンスを簡略化したものを返します。これは、指定された許容範囲で、特定のインスタンスに対して Douglas-Peucker アルゴリズムを実行することにより生成されます。

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

構文

.Reduce ( tolerance )

引数

項目

定義

tolerance

float 型の値です。 tolerance は、Douglas-Peucker アルゴリズムに入力するための許容範囲です。 tolerance には正の数値を指定する必要があります。

戻り値の型

SQL Server の戻り値の型 :geography

CLR の戻り値の型 : SqlGeography

説明

コレクションの場合、このアルゴリズムはインスタンスに含まれるそれぞれの geography ごとに個別に実行されます。 このアルゴリズムによって Point インスタンスが変更されることはありません。

このメソッドでは、LineString インスタンスのエンドポイントを保持しようとしますが、有効な結果を保持するために、エンドポイントの保持に失敗する場合があります。

負の値を指定して Reduce() が呼び出された場合、このメソッドでは ArgumentException が発生します。 Reduce() で使用される許容範囲は正の数値である必要があります。

Douglas-Peucker アルゴリズムでは、開始点と終了点以外のすべての点を取り除くことで、geography インスタンス内の各曲線またはリングを処理します。 その後、取り除かれた各点が、最も遠くの範囲外の点から始めて、結果から tolerance を超える点がなくなるまで戻されます。 有効な結果が保証されるように、必要に応じて結果が有効になります。

SQL Server 2012 では、このメソッドは FullGlobe インスタンスに拡張されました。

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

使用例

LineString インスタンスを作成し、Reduce() を使用してそのインスタンスを簡略化する例を次に示します。

DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()

関連項目

その他の技術情報

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