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

请参阅

其他资源