Reduce (geometry データ型)
指定した geometry インスタンスを簡略化したものを返します。これは、指定された許容範囲で、特定の geometry インスタンスに対して Douglas-Peucker アルゴリズムを実行することにより生成されます。
構文
.Reduce ( tolerance )
引数
- tolerance
float 型の値です。tolerance は、Douglas-Peucker アルゴリズムに入力するための許容範囲です。
戻り値の型
SQL Server の戻り値の型 : geometry
CLR の戻り値の型 : SqlGeometry
説明
コレクションの場合、このアルゴリズムはインスタンスに含まれるそれぞれの geometry ごとに個別に実行されます。
このアルゴリズムによって Point インスタンスが変更されることはありません。
LineString インスタンスでは、Douglas-Peucker アルゴリズムはインスタンスの元の始点と終点を保持し、指定された許容範囲を超えない範囲で、結果から最も離れた元のインスタンスの地点を追加する処理を繰り返します。
Polygon インスタンスでは、Douglas-Peucker アルゴリズムが各リングに個別に適用されます。返された Polygon インスタンスが無効な場合、メソッドは FormatException を生成します。たとえば、インスタンス内の各リングを簡略化するために Reduce() が適用され、その結果としてリングが重なる場合、無効な MultiPolygon が作成されます。
例
LineString インスタンスを作成し、Reduce() を使用してそのインスタンスを簡略化する例を次に示します。
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 0 1, 1 0, 2 1, 3 0, 4 1)', 0);
SELECT @g.Reduce(.75).ToString();