Reduce(geography 数据类型)
适用于:SQL Server
Azure SQL 数据库 Azure SQL 托管实例
返回给定 geography 实例的近似值,该值通过对实例运行具有给定公差的 Douglas-Peucker 算法来生成 。
这种 geography 数据类型方法支持大于半球的 FullGlobe 实例或空间实例 。
语法
.Reduce ( tolerance )
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
术语 | 定义 |
---|---|
tolerance | 类型为 float 的值 。 tolerance 是输入到 Douglas-Peucker 算法的公差 。 tolerance 必须为正数 。 |
返回类型
SQL Server 返回类型:geography
CLR 返回类型:SqlGeography
备注
对于集合类型,此算法单独作用于包含在该实例中的每个 tolerance 。 此算法不修改 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()
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈