Reduce (geography データ型 )
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric SQL Database
指定した 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 (11.x) では、このメソッドは FullGlobe インスタンスに拡張されました。
このメソッドは正確ではありません。
例
LineString
インスタンスを作成し、Reduce()
を使用してそのインスタンスを簡略化する例を次に示します。
DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()