次の方法で共有


Reduce (geography データ型 )

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

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

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

構文

  
.Reduce ( tolerance )  

Note

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

引数

期間 定義
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()  

参照

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