Reduce(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();